前面给大家讲了盒子模型的浮动,得出的结论就是不浮动的盒子处在标准流之内,在页面中会单独占一行显示;浮动的盒子则处在标准流之外,是在同一行显示的。
那么接下来给大家讲解盒子浮动带来的问题,以及如何清除浮动的影响。
我们先来了解一个属性:clear
clear属性有四个值clear:both|left|right|none;
作用:该属性的值指出了不允许有浮动对象的边。
这个属性是用来控制float属性在文档流的物理位置的。
clear:left;表示该元素左边不允许存在浮动元素;
clear:right;表示该元素右边不允许存在浮动元素;
clear:both;表示该元素两边都不允许存在浮动元素;
clear:none表示两边允许有浮动元素。
这里有个容易犯错的地方,clear是作用的元素本身,而不是相邻的元素。
继续使用我们上节课的图给大家讲解
上图盒子2、3、4是浮动的,下面我们把盒子4清除右浮动得到如下
由于盒子4清除了右浮动,不再受到浮动元素的影响,所以另起一行显示;
盒子3也做清除则会全部另起一行显示
当然浮动也会也会带来其他影响,比如会给父元素带来影响,会影响父元素的高度。如下图,浮动的元素使得父元素看起来是没有高度的;
这时候我们就需要对父元素设置清除浮动影响;代码如下:
效果为:
此时父元素是有高度的。类似的还可以使用伪类来清除浮动的影响,比较简单,读者可以自行尝试。