CSS浮动特点及清除浮动

1元素浮动后对父级的高度有影响,不再撑起父级的高度
浮动前会撑起父元素,就是将父元素的高(父元素不定义宽高的话),如下图,黄色是父元素,红色是子元素,红色撑起黄色
CSS浮动特点及清除浮动

2元素浮动后不自占一行
下图四个颜色的元素均已经浮动,所以在一行里
CSS浮动特点及清除浮动

3元素浮动后可以在父元素的左侧或右侧排列
但是会限制在父元素的最左或最右
如图中代码,红色元素浮动后在父元素范围内
CSS浮动特点及清除浮动

4元素浮动后不会对前面的文档流中的兄弟元素产生影响
独立于前面的,不干涉前面的、先写的元素
下图中,红、蓝、绿都已经浮动,黄色还是父元素,可以见到绿色靠在蓝色右边,而实际上绿还是左浮动,但会靠在最左
CSS浮动特点及清除浮动

5元素浮动后会对后面的文档流中的兄弟元素产生影响,会遮盖其后面的兄弟元素
浮动了会遮住会影响后面
如下图,绿色子元素就撑起黄色父元素,但绿色还未浮动,而蓝色已经浮动,所以蓝色遮住绿色,绿色就是上图4中的大小
CSS浮动特点及清除浮动

6内联元素浮动后,自动变成块级元素
自成一块
如下图粉色,粉色自己跑到绿色右边,接着绿色
CSS浮动特点及清除浮动

7浮动元素仍受父元素影响,还是在父元素的范围内
在父元素的宽,高之内
下图中,绿色变高,但宽没变,粉色在父元素内浮动的话,还是要在父元素宽高范围内,所以只能换行
CSS浮动特点及清除浮动CSS浮动特点及清除浮动

8当父元素内所有元素均浮动,元素们宽度相加大于父元素宽度时,会换行
在父元素的宽,高之内,宽不够会换行
如图,绿变高了,高的范围占着

9当元素浮动时虽然不自占一行,但会向前占位,前方空值的位置都会属于自己所有,因此后方的元素换行时,不能占据元素向前占位的地域
就是说后面有元素要换行的话,前面的元素也会占据一大块
图中画线部分就是绿元素占据的地方,
CSS浮动特点及清除浮动

10当元素浮动时,原则会盖住其后方在文档流中的兄弟元素。但文字、图片等(行内元素)不会被盖住,其后兄弟元素的文字不会被盖住而是环绕浮动元素的四周显示
如下两图中,半透明蓝色元素遮盖不了文字和锁图片
CSS浮动特点及清除浮动CSS浮动特点及清除浮动

清除浮动

  • 清除浮动并不是去除浮动,?而是将浮动带来的负面效果解决掉。因为浮动会产生?高度坍塌,遮盖
  • 浮动影响父元素无?高度
  • 父元素无?高度后,?元素的兄弟元素会向上,发?生被遮盖

1给父元素一个高度

.baba { 

background-color: blue; 

height: 100px; 

} 

2父元素也浮动,这样就和子元素在同一层了

.fuyuansu { 
background-color: blue; 
height: 100px; 

float: left; 

} 

3父元素溢出隐藏

.fuyuansu { 
background-color: blue; 
height: 100px; 
float: left; 

overflow:hidden: 

} 

4多创建一个空标签,放在父元素最后,他不能浮动,both可以清除左右两侧的元素浮动后果(影响),弊端是多一个标签

<style> 

	.baba > .d4 { 
	width: 100px; 
	Height: 100px; 


	clear: both; 

	float: none;  

	}
</style> 

5用伪元素模拟在父元素最后创建一个空标签,需要改善代码,单独创建一个清除浮动的类做这件事,把这个类给父元素

.baba::after{ 
content: “”; 
display: block; 

clear: both; 

}

CSS浮动特点及清除浮动

上一篇:httprunner 实现文件上传


下一篇:js类型判断