網(wǎng)站建設(shè)中,把“放置”和“大小”這兩個概念放在一起看上去有些奇怪,不過對于絕對定位元素來說,這是必要的,因為規(guī)范把它們緊密地綁在一起。如果網(wǎng)頁設(shè)計人員仔細考慮,這也不那么奇怪。請考慮如果一個元素使用4個偏移屬性來定位會發(fā)生什么情況,如下:
#masthead h1 {position: absolute; top: 1em; left: lent; right: 25%; bottom: l0px;
margin: 0; padding: 0; background: silver;}
在此,h1元素框的高度和寬度由其外邊距邊界的放置決定,如圖10-41所示s
圖10-41:根據(jù)偏移屬性確定元素的高度
如果包含塊更高,那么h1也會更高;如果包含塊更窄,h1也會跟著更窄。如果向h1 增加外邊距或內(nèi)邊距,這會對h1的高度和寬度計算值有進一步的影響。
但是網(wǎng)頁設(shè)計人員這樣做之后,再試圖設(shè)置一個顯式的高度和寬度會怎么樣呢?
#masthead h1 {position: absolute; top: 0; left: 1em; right: 10%; bottom: 0; margin: 0; padding: 0; height: 1em; width: 50%; background: silver;}
必須做些工作,因為所有這些值都正確是不太可能的。實際上,包含塊寬度必須是h1的 font-size計算值的2.5倍,這樣以上的值才能正確。如果是其他寬度,則說明至少有一個值是錯誤的,相應(yīng)地必須將其忽略。到底哪一個值是錯誤的,這取決于很多因素,而且根據(jù)元素是替換元素還是非替換元素還會有所不同。
為此考慮以下規(guī)則:
#masthead h1 {position: absolute; top: auto; left: auto;}
結(jié)果會是什么呢?網(wǎng)頁設(shè)計人員可以看到,答案并不是“將值重置為0”。下一節(jié)將介紹真正的答案。