上一節(jié)介紹了網(wǎng)頁設計三種定位機制使用了4個屬性來描述定位元素各邊相對于其包含塊的偏移。我們將這4個屬性稱為偏移屬性,這對于完成定位是很重要的一部分。
top、right、bottom、left
值:<length>| <percentage> | auto | inherit
初始值:auto
應用于:定位元素(也就是position值不是static的元素)
繼承性:無
百分數(shù):對于top和bottom,相對于包含塊的高度;對于right和left,相對于包含塊的寬度
計算值:對于相對定位元素,見以下說明,對于static元素為auto,對于長度值,是相應的絕對長度;對于百分數(shù)值,則為指定的值;否則,為 auto
說明:計算值取決于一系列因素,見附錄A中的相關例子
這些屬性描述了距離包含塊最近邊的偏移(所以得名offset)。例如,top描述了網(wǎng)站建設定位元素上外邊距邊界離其包含塊的頂端多遠。如果top為正值,會把定位元素的上外邊距邊界下移,若為負值,則會把定位元素的上外邊距移到其包含塊的頂端之上。類似地,left描述了定位元素的左外邊距邊界在其包含塊左邊界右邊(正值)或左邊(負值)有多遠。如果是正值,會把定位元素的外邊距邊界移到包含塊左邊界右邊,而負值則將其移到包含塊左邊界左邊。
還可以這樣來講,正值會導致向內(nèi)偏移,使邊界朝著包含塊的中心移動,而負值會導致向外偏移。
注意:最初的網(wǎng)站建設CSS2規(guī)范實際上指出,偏移的是內(nèi)容邊界,而不是外邊距邊界,不過這與CSS2的其他部分不一致。這個錯誤在后來的勘誤和CSS2.1中得到修正。所有當前開發(fā)的瀏覽器(寫作本書時)都使用外邊距邊界來完成偏移計算。
偏移定位元素的外邊距邊界時,帶來的影響是元素的所有一切(包括外邊距,邊框、內(nèi)邊距和內(nèi)容)都會在定位的過程中移動。因此,可以為定位元素設置外邊距、邊框和內(nèi)邊距,這些會隨著定位元素一直保留,并包含在偏移屬性定義的區(qū)域內(nèi)。
網(wǎng)頁設計人員要記住重要的一點,偏移屬性定義了距離包含塊相應邊的偏移(例如,left定義了距離包含塊左邊的偏移),而不是距包含塊左上角的偏移。正是因為這個原因,填充一個包含塊的右下角時要使用以下值:
top: 50%; bottom: 0; left: 50%; right: 0;
在這個例子中,定位元素的左外邊界放在包含塊中間的位置上,這是距包含塊左邊界的偏移。不過,定位元素的右外邊界沒有從包含塊的右邊界偏移,所以二者不矛盾。定位元素的頂端和底端也是如此:外上邊界放在包含塊中間的位置上,但是外下邊界沒有從包含塊底端上移。這就得到了如圖10-26所示的結果。
圖10-26:填充包含塊的右下1/4部分
注意:在圖10-26以及本章大多數(shù)例子中,都是基于絕對定位的,由于絕對定位對于展示top、right、bottom和left如何工作是最簡單的機制,所以我們一直都會用絕對定位。
需要說明,網(wǎng)頁設計定位元素的背景色稍有不同。圖10-26中沒有外邊距,但是如果確實有外邊距,在邊框和偏移邊界之間就會出現(xiàn)空白??瓷先ゾ秃孟穸ㄎ辉貨]有完全填充包含塊右下方1/4部分一樣。實際上,它確實填滿了這個區(qū)域,不過人眼不能直接看出。因此,以下兩組樣式會得到幾乎相同的外觀效果,假設包含塊為100em高,100em寬:
top: 50%; bottom: 0; left: 50%; right: 0; margin: 10em;
top: 60%; bottom: 10%; left: 60%; right: 10%; margin: 0;
重申一句,二者只是在視覺效果上相似。
通過使用負值,可以將一個元素定位到其包含塊之外,例如,指定以下值會得到如圖10-27所示的結果:
top:-5em; bottom: 50%; left: 75%; right:-3em;
圖10-27:將一個元素定位到其包含塊之外
除了長度值和百分數(shù)值,網(wǎng)頁設計的偏移屬性還可以設置為auto,這是默認值。對于auto沒有定義行為,它會根據(jù)所用的定位類型改變。本章后面將逐個考慮各種定位類型,并介紹auto如何作用。
當前文章標題:?網(wǎng)頁設計中的偏移屬性
當前URL:http://m.ww44088.com/news/wzzz/migration-properties.html
上一篇:網(wǎng)頁設計中的包含塊