CSS浮动(清除浮动)

CSS浮动

css有三种机制来设置盒子的摆放位置,分别为普通流,浮动和定位

普通流:

1.块状元素独自占一行,从上而下排序。
常见元素:div, hr, p, h1-h6, ul, ol, dl, form, table
2.行内元素从左到右排序
常见元素:span,a,i,em 等

浮动:

1.让多个块级盒子在一行显示
2.实现盒子的左右对齐
3.控制图片,实现文字环绕图片的效果

定位:将盒子定在浏览器的某一个位置
浮动语法:
选择器{
float:属性;     //有none,left,right 可选择
}
浮动的相关性质:
  • 块状里面有浮动的属性,它可以浮动在标准流上面,即压着标准流
  • 浮动的盒子不再占距位置,标准流会取代它的位置
  • 浮动特性可以转换元素display属性,转化为类似与行内块,但元素之间没有空隙
浮动元素与父盒子的关系

1.子盒子的浮动参照父盒子的对齐
2.其不会超过父盒子的边框,也不会超过父盒子的内边距,顶多紧挨其内边框

浮动元素与兄弟盒子的关系

1.当A盒子浮动,B盒子为标准流时,B盒子会到A盒子的位置
2.当A盒子为标准流,B盒子浮动时,B盒子不会影响A盒子的位置,即仍处于原位置

情况一:在这里插入图片描述
即浮动元素不会影响其前面的标准流 ,并且浮动的盒子不占据位置

用子类撑开父类盒子,父类不加宽高,加上浮动,子类设置宽高

清除浮动

很多时候父盒子是不方便给高度的,在父和子都为标准流的情况下,父盒子的高度会随着子盒子的高度的变化而变化,但如果子盒子是浮动的呢?? 这时就需要清除浮动了。

清除浮动用于因为子盒子浮动而引起父盒子高度为零的问题。
清除浮动后,父级就会根据浮动的子盒子自动检测高度

选择器{
clear:both;
}

清除浮动的方法

1.额外标签法
在浮动盒子最后标签后面加一行标签

例如:<div class=”clear"> < /div>

2.给父类添加 overflow:hidden;
3. 使用after伪元素清除

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	/*使用after给父类*/
	    .clearfix:after{
	    	content: "";
	    	display: block;
	    	height: 0;
	    	visibility: hidden;
	    	clear: both;
	    }
	    .clearfix{
	    	*zoom:1;  /*ie6,7专用清除浮动的样式*/
	    }
		.one{
			width: 400px;
			border: 1px solid #123;
			/*给父类加overflow*/
			/*overflow: hidden;*/

		}
		.dd{
			float: left;
			width: 200px;
			height: 200px;
			background-color: skyblue;
		}
		.ss{
			float: left;
			width: 200px;
			height: 400px;
			background-color: purple;
		}
		.two{
			float: left;
			width: 500px;
			height: 200px;
			background-color: orange;
		}
		/*使用额外标签法*/
		/*.clear{
			clear: both;
		}*/
	</style>
</head>
<body>
	<div class="one clearfix">
		<div class="dd"></div>
		<div class="ss"></div>
		<!-- <div class="clear"></div> -->
	</div>
	<div class="two"></div>
</body>
</html>

4.添加双伪元素清除浮动

        .clearfix:before,
	    .clearfix:after{
	    	content: "";
	    	display: table;
	    }
	    .clearfix{
	    	*zoom:1;  /*ie6,7专用清除浮动的样式*/
	    }
	    .clearfix:after{
	    	clear: both;
	    }

方法三和方法四中实现清除浮动的代码是固定的,目前不理解可以直接粘贴复制

总结一下:什么时候要清除浮动

1.父级没高度
2.子盒子浮动了
3.在上面两条具备的情况下,影响到下面布局了。如果不影响可以不用清除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值