CSS:浮动和清除浮动总结

471 阅读2分钟
简述:浮动流是“半脱离标准流”的水平排版方式,只能设置左/右对齐

特点:
1.浮动流中没有居中对齐,margin:0 auto也不适用
2.浮动流不区分块级/行内/行内块级元素,元素都可以排版都可以设置宽高
3.浮动流不像标准流一样,内容撑不起宽高

原理:参考以下两篇文章都写得很易懂

清除浮动的几种方式:

1.给前面一个父级元素设置高度
(在企业级中,我们能不写高度就不写高度,所以这种方式用得少)

2.给后面的盒子添加clear属性:
none:默认取值,按照浮动元素的排序规则来排序
left:不要找前面的左浮动元素
right:不要找前面的右浮动元素
both:不要找前面的左浮动元素和右浮动元素
(注意:给元素添加clear属性后,margin属性会失效)

3.外墙法
在两个盒子中间添加一个额外的块级元素然后设置该元素clear:both属性
(此时第二个盒子使用margin-top属性有效)
(此时第一个盒子使用margin-bottom属性无效)

4.内墙法
在第一个盒子中的最后添加一个额外的块级元素然后设置该元素clear:both属性
(此时第二个盒子使用margin-top属性有效)
(此时第一个盒子使用margin-bottom属性无效)
(—在企业开发中不常用隔墙法来清除浮动—)

5.使用伪元素对隔墙法进行优化(推荐)


6.使用overflow: hidden
.可以将超出标签范围的内容裁剪掉
.可以清除浮动
.可以通过该属性设置margin-top之后,后面的盒子不被定下来
(推荐使用,但是对浏览器版本有要求)