Rumah > hujung hadapan web > tutorial css > CSS中关于清除浮动几种方式的具体介绍

CSS中关于清除浮动几种方式的具体介绍

黄舟
Lepaskan: 2017-08-07 15:22:43
asal
1413 orang telah melayarinya

什么是浮动?

特性: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.使用空标记清除浮动,隔墙放。增加标签。
     在浮动标签的后边加一个

,不设置宽高然后设置.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;
   }
Salin selepas log masuk

用法:

<p class="top">top</p>
	<p class="clearfix">
	    <p class="left">left</p>
	    <p class="right">right</p>
	</p>			
	<p class="bottom">bottom</p>
Salin selepas log masuk
.clearfix{
			 	display: table;/* 触发nfc */
			 }
			 .clearfix:before,.clearfix:after{
				/* 前后加一个空的标签清除浮动 */
				content: "";
				display: block;
				height: 0;
				clear: both;
			 }
			 .clearfix{
			 	_zoom:1;/* 为了兼容ie6 */
			 }
Salin selepas log masuk

Atas ialah kandungan terperinci CSS中关于清除浮动几种方式的具体介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan