浮動元素
網(wǎng)頁設(shè)計人員對于浮動元素有幾點要記住。首先,會以某種方式將浮動元素從文檔的正常流中刪除,不過它還是會影響布局。采用網(wǎng)站建設(shè)css的特有方式,浮動元素幾乎“自成一派”,不過它們還是對文檔的其余部分有影響。
這種影響源自于這樣一個事實:一個元素浮動時,其他內(nèi)容會“環(huán)繞”該元素。對于浮動圖像來說,這種行為我們已經(jīng)很熟悉了,不過要知道,元素浮動時也同樣如此(例如,浮動一個段落在圖10-2中,由于為浮動段落增加了外邊距,可以很清楚地看到這種行為:
p.aside {float: right; width: 15em; margin: 0 1em 1em; padding: 0.25em; border: 1px solid;}
可以注意到一些有意思的情況,首先,網(wǎng)頁設(shè)計中浮動元素周圍的外邊距不會合并。如果浮動一個有20像素外邊距的圖像,在這個圖像周圍將至少有20像素的空間。如果其他元素與此圖像相鄰(這表示水平相鄰和垂直相鄰),而且這些元素也有外邊距,那么這些外邊距不會與浮動圖像的外邊距合并,如圖10-3所示:
p img {float: left; margin: 25px;}
第7章做過一個比喻,將元素比作是有塑料邊的紙片,再來看這個比喻,圖像周圍的塑料邊(外邊距)絕對不會與其他浮動元素周圍的塑料邊重疊。
如果確實要浮動一個非替換元素,則必須為該元素聲明一個width。否則,根據(jù)網(wǎng)站建設(shè)CSS規(guī)范,元素的寬度趨于0。因此,假設(shè)瀏覽器的最小width值是1個字符,那么浮動段落可能只有1個字符寬。如果沒有為浮動元素聲明width值,最后可能得到如圖10-4所示的結(jié)果(坦率地說,這種情況很少見,但確實是可能的)。
圖10-4:沒有顯式寬度的浮動文本不浮動
不浮動
除了left和right外,float屬性還有一個值,float: none用于防止元素浮動,
這看上去可能有些傻,因為要讓一個元素不浮動,最容易的辦法就是不聲明float,這樣不就行了嗎?確實如此。首先,float的默認值是none。換句話說,要得到正常的非浮動行為,必須有這個值,如果沒有這個none值,所有元素都會以某種方式浮動。
其次,網(wǎng)站建設(shè)人員可能想覆蓋導(dǎo)入樣式表中的某個樣式。假設(shè)設(shè)計人員在使用一個服務(wù)器端樣式表,這個樣式表要讓圖像浮動。不過在某個特定的頁面上,設(shè)計人員不希望圖像浮動。不必為此再編寫一個全新的樣式表,而只需在文檔的嵌套樣式表中增加img {float: none;},不過,除了這種情況,確實很少有必要真正使用float: none.
當前文章標題:網(wǎng)頁設(shè)計中的浮動元素
當前URL:http://www.gtalker.cn/news/wzzz/floating-element.html