CSS中關於清除浮動幾種方式的具體介紹

來源:互聯網
上載者:User
什麼是浮動?

特性:1--浮動的元素不會佔據標準流的空間,但是會影響標準流中的文本的排版。浮動只有左右浮動。
2--浮動元素A的位置與上一個元素有關係。如果上一個元素有浮動,則A的頂部與上一個元素頂部對齊,如果沒有浮動,則與其底部對齊。
3--一個父盒子中的子盒子,如果其中一個子級有浮動,則其他子級都需要浮動,才能一行顯示。
4--元素浮動之後,如果沒有設定寬高,元素會根據內容的多少來設定內容的大小將會有行內塊元素的屬性。
5--元素浮動之後,如果父元素沒有設定高度。會造成父元素高度塌陷。
解決這個問題?
-----在父元素中加入屬性:overflow:hidden;超出的部分進行隱藏

overflow屬性:
當盒子內的元素超出黑子自身的大小時,內容的顯示方式
visible:內容不會被修剪,會呈現在元素框之外(預設)
hidden:會被修剪隱藏,可以使用這個屬性來清除浮動
auto:自適應顯示捲軸
scrol:內容會被修剪,會顯示捲軸

bfc:
overflow可以觸發元素的bfc,可以讓元素具有排版的空間和許可權,在bfc內部所有的元素都依據父元素進行排版和布局,所有父元素具有了包裹性,這就是解決高度塌陷問題的原理。
浮動、定位、overflow、dispaly、table、table-cell都可以觸發bfc。

清除浮動:
--就是讓當前元素左右兩邊都不存在浮動元素的時候,才把元素放在標準流中顯示。
--清除浮動的四種方式:
1.使用空標記清除浮動,隔牆放。增加標籤。
在浮動標籤的後邊加一個<p class="clearboth"></p>,不設定寬高然後設定.clearboth{clear:both},然後再將需要的標籤放到這個空標籤後邊即可
2.使用overflow屬性清除浮動。會誤傷。
overflow:hidden;
3.使用after偽對象清除浮動
4.使用before after偽對象清除浮動
clearfix(2,3,4中方式的結合,常用)。

.clearfix   父盒子要把子盒子包裹住,觸發bfc同時清除前後浮動。   .clearfix{      display:table;<!-- 觸發dfc -->   }   .clearfix:before,.clearfix:after{      content:"";      display:block;      clear:both;      height:0;   }   在ie6中display:table;不能觸發dfc,所以用以下方式進行觸發   .clearfix{      _zoom:1;   }

用法:

<p class="top">top</p><p class="clearfix">    <p class="left">left</p>    <p class="right">right</p></p><p class="bottom">bottom</p>
.clearfix{ display: table;/* 觸發nfc */ } .clearfix:before,.clearfix:after{/* 前後加一個空的標籤清除浮動 */content: "";display: block;height: 0;clear: both; } .clearfix{ _zoom:1;/* 為了相容ie6 */ }
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.