CSS浮動屬性Float詳解

2021-09-08 23:55:33 字數 3088 閱讀 6249

什麼是css float?

float 是 css 的定位屬性。在傳統的印刷布局中,文字可以按照需要圍繞。一般把這種方式稱為「文字環繞」。在網頁設計中,應用了css的float屬性的頁面元素就像在印刷布局裡面的被文字包圍的一樣。浮動的元素仍然是網頁流的一部分。這與使用絕對 定位的頁面元素相比是乙個明顯的不同。絕對定位的頁面元素被從網頁流裡面移除了,就像印刷布局裡面的文字框被設定為無視頁面環繞一樣。絕對定位的元素不會 影響其它元素,其它元素也不會影響它,無論它是否和其它元素挨著。

像這樣在乙個元素上用css設定浮動:

#sidebar
fload屬性有四個可用的值:left 和right 分別浮動元素到各自的方向,none (預設的) 使元素不浮動,inherit 將會從父級元素獲取float值。

float的用處

除了簡單的在周圍包圍文字,浮動可用於建立全部網頁布局。

同樣的布局可以通過在外容器使用相對定位,然後在頭像上使用絕對定位來實現。這種方式中,文字不會受頭像大小的影響,不會隨頭像的大小而有相應變化。

清除float

清除(clear)是浮動(float)的相關屬性.乙個設定了清除float的元素不會如浮動所設定的一樣,向上移動到float元素的邊界,而是會忽視浮動向下移動。如下,一圖頂千言。

上例中,側欄向右浮動,並且短於主內容區域。頁尾(footer)於是按浮動所要求的向上跳到了可能的空間。要解決這個問題,可以在頁尾(footer)上清除浮動,以使頁尾(footer)待在浮動元素的下面。

#footer
清除(clear)也有4個可能值。最常用的是 both,清楚左右兩邊的浮動。left 和 right 只能清楚乙個方向的浮動。none 是預設值,只在需要移除已指定的清除值時用到。inherit 應該時第五個值,不過很奇怪的是 ie 不支援(這個不奇怪吧,ie 從來都這麼特立獨行吧 -糖伴西紅柿注)。只清除左邊或右邊的浮動,實際中很少見,不過絕對有他們的用處。

偉大的塌陷

使用浮動(float)的乙個比較疑惑的事情是他們怎麼影響包含他們的父元素的。如果父元素只包含浮動元素,那麼它的高度就會塌縮為零。如果父元素不包含任何的可見背景,這個問題會很難被注意到,但是這是乙個很重要的問題。

塌陷的直觀對立面更不好,看看下面的情況:

當上面的塊級元素自動擴充套件以適應浮動元素時,段落間的文字流中會出現非自然的空白換行,而且沒有有效的方法來修正這個問題。對於這種情況,設計師的抱怨會更甚於對塌陷的抱怨(沒理解,不是設計完成之後才會進行頁面編碼嗎?- 糖伴西紅柿)。

為了防止怪異的布局和跨瀏覽器的問題,塌陷問題幾乎總是被要處理的。我們在容器中的浮動元素之後,容器結束之前來清除浮動。

清除浮動的技術

如果你很明確的知道接下來的元素會是什麼,可以使用 clear:both; 來清除浮動。這個方法很不錯,它不需要 hack,不新增額外的元素也使得它有良好的語義性。當然事情並不是都可以這樣解決的,工具箱中還是需要另外幾個清除浮動的工具。

不同的情況需要不同的浮動清除方法。以乙個具有不同樣式塊的網格為例。

為了從視覺上較好的把相似的塊聯絡起來,需要在必要的地方開啟新行,這裡是顏色改變的地方。如果每個顏色組都有乙個父元素的話,我們可以使用 overflow 或者 簡單清除方法。或者,在每組之間用乙個空div方法。額外的 div 之前並不存在,可以自己試試來看看哪個方法好。

浮動的問題

浮動因脆弱而飽受詬病。大多數的脆弱性來自於 ie6 及其一系列的浮動相關 bug。因為越來越多的設計師不再支援 ie6 了,你也可以不關注它了。不過對於那些要關注的人來說,這裡有些大概。

英文原文:all about floats

中文譯文:關於浮動的前世今生

跑運輸論壇,跑跑運輸,搞活經濟!!!  (還等什麼!!!趕快猛點進入!!!)

跑運輸站長部落格,跑運輸,搞活經濟!!!  (還等什麼!!!趕快猛點進入!!!)

聚划算**客外推精選商品、 集結聚划算外推高轉化商品

品牌賣家折扣商品推廣

天天瘋狂購,低至3折,還等 神馬

打造第一母嬰達人館,網羅更多母嬰商品,為你打造屬於你的溫馨小屋!

**優秀店鋪精選,集合了高佣金高轉換率的優秀店鋪。

秒殺滿立減

齊集**瘋狂**食品、讓你買得省心、吃得放心、而且還有高額佣金哦!

**皇冠店鋪精選,集合了高佣金高轉換率的皇冠 店鋪。

**網-亞洲最大、最安全的網上交易平台,提供機票、票務服務,方便您的出行

想看寶島台灣的時尚動態嗎,想觀寶島台灣的潮流前沿嗎,一切盡在台灣館頻道,高佣金、高轉化,精彩不容錯過

**最權威的**風向標,集合了**最熱賣的優質商品,給買家帶來全新的購物體驗。

**行貨保證!精選電器城最優品牌商品,讓您有親臨**的優良購物體驗。

引領**數碼時尚,為你帶來**最受追捧的新潮數碼產品,讓你追隨時尚永不out!

**最權威的鞋包配飾風向標,集合了**最熱賣的優質商品,讓買家了解每季最時尚的配飾。

**客男人頻道,精選**網熱銷**,高成交、高佣金、高轉化,讓您收益節節高!

集結**最豐富的強勢類目,精選最優質的賣家和商品,達到最廣泛的買家覆蓋率

**美容館,我的美容管家。精選商品、高額佣金、瘋狂暢銷、打造買家自己的美容小館。

打造第一居家達人館,網羅更多創意極品和居家商品,為你共同打造屬於你的浪漫滿屋!

網購從這裡開始

CSS浮動屬性Float詳解

float 是 css 的定位屬性。在傳統的印刷布局中,文字可以按照需要圍繞。一般把這種方式稱為 文字環繞 在網頁設計中,應用了css的float屬性的頁面元素就像在印刷布局裡面的被文字包圍的一樣。浮動的元素仍然是網頁流的一部分。這與使用絕對 定位的頁面元素相比是乙個明顯的不同。絕對定位的頁面元素被...

CSS浮動屬性Float詳解

原文 float 是 css 的定位屬性。在傳統的印刷布局中,文字可以按照需要圍繞。一般把這種方式稱為 文字環繞 在網頁設計中,應用了css的float屬性的頁面元素就像在印刷布局裡面的被文字包圍的一樣。浮動的元素仍然是網頁流的一部分。這與使用絕對 定位的頁面元素相比是乙個明顯的不同。絕對定位的頁面...

CSS浮動屬性Float詳解 by 帕蘭

float 是 css 的定位屬性。在傳統的印刷布局中,文字可以按照需要圍繞。一般把這種方式稱為 文字環繞 在網頁設計中,應用了css的float屬性的頁面元素就像在印刷布局裡面的被文字包圍的一樣。浮動的元素仍然是網頁流的一部分。這與使用絕對 定位的頁面元素相比是乙個明顯的不同。絕對定位的頁面元素被...