什麼是浮動?
特性: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.使用空標記清除浮動,隔間牆放置。增加標籤。
在浮動標籤的後邊加一個
.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 */ }
以上是CSS中關於清除浮動幾種方式的具體介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!