解决浮动元素无法被普通元素察觉的影响。
对父容器清除浮动
父容器无法察觉到浮动元素,所以高度无法被撑开,没有包裹住浮动的子元素,清除浮动就是为了让父容器撑开高度,包裹住浮动元素。对普通元素清除浮动
普通元素无法察觉到浮动元素,所以普通元素该在哪还是在哪,但是视觉上会被浮动元素遮挡,清除浮动就是为了让普通元素“感知到”浮动元素,从而自身往下移动,不被遮挡。
浮动元素自身往下移动
- 浮动元素之间可以察觉到,对某个浮动元素A清除浮动,它自身就会往下移动。
清除浮动的方法
- 加一个div 设置它的 class 为 clear: both; 这条主要应用在撑开父容器高度。
- 对父容器加一个伪元素
E:after{
content: "";
display: block;
clear: both;
}
这条的本质和上一条是一样的,即在父容器的最后加一个不允许左右有浮动的块级元素,这个块级元素会移动到浮动元素的下面,而且这个块级元素能被父容器察觉到,从而父容器就被撑开了。
- 对普通元素的 class 加一条clear: both; 这条主要应用在让普通元素往下移动不被浮动元素遮挡。
- 利用BFC来清除浮动
BFC(Block Format Content)块级内容格式化,是指让普通元素形成一个新的块级元素,从而察觉到浮动元素。
常用的BFC方法有:
display: table-cell | table-caption | inline-block;
overflow: hidden | auto | scroll;
position: absolute | fixed;
float: left | right;