CSS浮動與清除浮動

一、CSS浮動

1、三個固定寬度與高度的框,當把框 1 向右浮動時,它脫離文檔流并且向右移動,直到它的右邊緣碰到包含框的右邊緣。

2、文字圍繞圖片效果,當設置圖片左浮動時,緊鄰圖片的行內元素將依次排開,與圖片形成環(huán)繞效果。

3、浮動引發(fā)的問題

我們不定義框的寬度,然后再對1進行右浮動,我們看到內容多寬,容器就多寬,即:未定寬度的元素設定了浮動,元素的寬度會隨內容變化,我們看到對1進行浮動之后,框2就受到影響,但框3并沒有受到影響,設定了浮動的元素會對相鄰元素即緊隨其后的元素產生影響,使我們的布局變亂。

當父級元素包含的元素設置浮動時,我們發(fā)現(xiàn)父容器并沒有把浮動的子元素包圍起來,俗稱塌陷。

二、如何清除浮動

? ? ?1、利用 clear屬性,清除浮動

? ? ?2、使父容器形成BFC。

2.1 利用 clear屬性,清除浮動

clear屬性:clear 屬性規(guī)定元素的哪一側不允許其他浮動元素。

對緊鄰浮動后的元素進行清除浮動,對其后元素設置clear屬性

解決父級元素塌陷的問題:①添加空的div,設置clear屬性

clear:left屬性只是消除其左側div浮動對它自己造成的影響,而不會改變左側div甚至于父容器的表現(xiàn),當子元素中有浮動和普通文檔流元素,設置相應普通文檔流元素clear屬性就可以清除浮動;當子元素全是浮動元素時,我們在最后添加了一個非浮動的div,由于它有clear:left屬性,所以它會按照左側div不浮動來定位自己,也就是定位到下一行,而父容器看到有一個非浮動、普通流的子元素元素,會將其包圍,這樣造成了順便也把三個浮動元素也包裹起來的效果,高度不再塌陷。

②clearfix技巧

“clearfix”技巧是基于在父元素上使用“:before”和“:after”兩個偽類。使用這些偽類,我們可以在浮動元素的父容器前面和后面創(chuàng)建隱藏元素?!?before”偽類是用來防止子元素頂部的外邊距塌陷,使用“display: table”創(chuàng)建一個匿名的“table-cell”元素。這也確保在IE6和IE7下具有一致性。“:after”偽類是用來防止子元素的底部的外邊距塌陷,以及用來清除元素的浮動。

為容器設置了一個類名“group”。在需要清除浮動的容器上添加這個類名“group”。

2.2使父容器形成BFC

BFC有三個特性

BFC會阻止垂直外邊距(margin-top、margin-bottom)疊加

BFC不會重疊浮動元素

BFC可以包含浮動

我們可以利用BFC的第三條特性來“清浮動”,這里其實說清浮動已經不再合適,應該說包含浮動。也就是說只要父容器形成BFC就可以,簡單看看如何形成BFC

float為left|right

overflow為hidden|auto|scroll

display為table-cell|table-caption|inline-block

position為absolute|fixed

我們可以對父容器添加這些屬性來形成BFC達到“清浮動”效果

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,125評論 1 92
  • 文章版權歸饑人谷_Lyndon以及饑人谷所有。 1. 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分...
    HungerLyndon閱讀 2,471評論 4 10
  • 一,浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 1,002評論 0 4
  • 浮動,從誕生那天起,它就是個特別的屬性——既為網頁布局帶來新的方法,卻又隨之產生一系列的問題。當然,隨著時間的推移...
    郝特么冷閱讀 907評論 0 6
  • 夜很深了,睡意挺濃的。 看書看久了,想想你就好了。 明天還要看書。 我也要睡了。 我掙到錢的那天,我回去找你。 但...
    xiao錢錢閱讀 306評論 0 0

友情鏈接更多精彩內容