首頁  >  文章  >  web前端  >  CSS中關於清除浮動幾種方式的具體介紹

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

黄舟
黄舟原創
2017-08-07 15:22:431385瀏覽

什麼是浮動?

特性: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.使用空標記清除浮動,隔間牆放置。增加標籤。
     在浮動標籤的後邊加一個915caa8c7a7823c8ba9e5493889b0db994b3e26ee717c64999d7867364b1b4a3,不設定寬高然後設定.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 */
			 }

以上是CSS中關於清除浮動幾種方式的具體介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn