本文**:
通常是乙個很小的數值,經過層層放大歪曲後,整個布局就走形了。css是一門很簡單的語言,易學易用,但也最容易出垃圾**。這是沒有深入研究這門語言所致。本人認為,css是由以下三大塊構成的:預設值,繼承系統與加權系統。預設值,也就是瀏覽器在使用者沒有設定屬性的情況下,預設指定的屬性。css框架基本都有乙個叫reset.css 的檔案,就是對其進行重設,消除各瀏覽器的差異的。繼承系統就是下面要重點討論的東西。加權系統,也就是優先順序的問題,不在本文的討論範疇,不說了。另,這三個東西都面臨著ie bug的侵襲,危害甚大,自己另行了斷吧(笑)。
在css中,許多屬性都是可以繼承的,如某個段落的字型設定為白色,其元素的字型不用設定或設定為inhert,它就是白色。這些屬性被稱之為inherited property,它會從父元素獲取對應屬性的經過計算與轉換的值(computed value),如果父元素和它的情形一樣,它就繼續往上找,最後沒有就使用瀏覽器的預設值。
下面是 inherited properties的一覽表:
border-collapse
border-spacing
caption-side
color
cursor
direction
empty-cells
font
font-family
font-stretch
font-size
font-size-adjust
font-style
font-variant
font-weight
letter-spacing
line-height
list-style
opacity
list-style-image
list-style-type
quotes
text-align
text-indent
text-transform
white-space
word-spacing
我們給父元素設定了字型的樣式,沒有設定子元素的,當取出子元素的時,發現其值轉換為rgb格式(當然ie除外啦!)
不過,在ie7及其之前的版本,是不支援用inhert來設定direction與visibility以外的樣式屬性。具體可參見這裡與這裡
在ie8中,原本是inherited property的text-align在th中失效。
ruby
rouvre
by司徒正美
table, tr, td, th
table
td, th
本來th應該會從table中繼承文字向右對齊的設定,但失效了……
解決ie8這個弱智bug也很容易,就是顯式地設定inhert。
table, tr, td, th
table
td, th
th 此外還有一些css屬性是不能繼承的,最經典如border系列。它被稱之為non-inherited property,如果我們不為它設定,我們只能取得瀏覽器的預設值,預設值在火狐中被稱之為 initial value 。乙個相關的好訊息是,預設值在火狐也可以指定了,這樣我們就不用reset樣式了!
下面是non-inherited property的一覽表:
background
border
bottom
clear
display
float
height
left
margin
outline
overflow
padding
position
right
top
visibility
width
z-index
我們給父元素設定了背景顏色,沒有設定子元素的,這時會取得瀏覽器的預設值transparent(w3c那一方好像只要是顏色都會轉換為rgb格式,多出的a為alpha)
接著我們來看auto,這是乙個含糊不清但是有長度概念的值。應用於以下屬性:
overflow
cursor
height
width
marker-offset
margin
margin-* (left|bottom|top|right|start|end)
top
bottom
left
right
table-layout
z-index
-moz-column-width
languages
在塊級元素的可度量的屬性中(如width,height),如果不設定值,其預設值是auto,但它很容易會被父級元素的值覆蓋,也就是隱式地成為了inhert了。在內聯元素中,由於不具備盒子模型,如果不設定,就算是火狐也原本奉還它,這對於精確計算元素的寬度與高度是非常不利的。auto還有對稱性,這個在居中布局我們常常運用到它。在非度量的屬性中,如overflow,就要具體情況具體分析了。
CSS 樣式繼承 inherit 屬性
在css中,子元素會繼承了父元素的一些樣式屬性。能夠繼承到子類的樣式屬性非常有限,僅是文字 字型 顏色.子類如果還想繼承父類的屬性,可以通過inherit強制繼承。通過編輯器做了個合同管理的系統,要求就是上傳的合同展示在頁面上必須幾乎相同 並且需要在瀏覽器上能填寫合同,由於編輯器用的一般是和標籤 為...
CSS中inherit指定繼承的使用方法
from css中的每個屬性都有乙個特定值 inherit 其含義是指定繼承父元素的相應屬性,使用inherit一方面在 上能地表明要繼承于父元素的樣式屬性,另一方面也使子元素繼承了那些不會被自動繼承的屬性 假如設計者要使id為menu的div元素有2px的黑色邊框,且具有5px的填充,同時想讓其子...
對height 100 和inherit的總結
部落格主頁 正文 之前看到一篇相關的文章 在看這個文章的demo時發現一些問題,下面來總結歸納一下 如下 效果大致是這個樣子 其中,左邊的是height 100 右邊的是height inherit。下面我們進行一下改動 其實就是給兩個子元素加上絕對定位。效果如圖 我們發現,100 的元素的高度計算...