CSS基础-清除浮动

清除浮动

盒子高度问题

在标准流中内容的高度可以撑起盒子的高度
在浮动流中浮动元素内容的高不可以撑起盒子的高

清除浮动方式一

给前面的父盒子添加高度

注意点:
在企业开发中能不写高度就不写高度, 所以这种方式不常用

清除浮动方式二

利用clear:both; 属性清除前面浮动元素对我的影响

注意点:
使用clear:both 之后margin属性会失效, 所以不常用

清除浮动方式三(外墙法)

在两个有浮动子元素的盒子之间添加一个额外的块级元素

注意点
在外墙法中可以通过设置额外标签的高度来实现margin效果
搜狐中大量使用了这个技术, 但是由于需要添加大量无意义的标签, 所以`不常用`

清除浮动方式四(内墙法)

在前面一个盒子的最后添加一个额外的块级元素

注意点:
内墙法会自动撑起盒子的高度, 所以可以直接设置margin属性
和外墙法一样需要添加很多无意义的空标签,有违结构与表现的分离,在后期维护中将是噩梦

清除浮动方式五

什么是overflow:hidden?
overflow:hidden的作用是清除溢出盒子边框外的内容

如何利用overflow:hidden;清除浮动?
给前面一个盒子添加overflow:hidden属性

注意点:
由于overflow:hidden可以撑起盒子的高度, 所以可以直接设置margin属性
IE8以前不支持利用overflow:hidden来清除浮动, 所以需要加上一个*zoom:1; 实际上*zoom:1能够触发IE8之前IE浏览器的hasLayout机制
优点可以不用添加额外的标签又可以撑起父元素的高度, 缺点和定位结合在一起使用时会有冲突

清除浮动方式六

给前面的盒子添加伪元素来清除浮动

注意点:
本质上和内墙法一样, 都是在前面一个盒子的最后添加一个额外的块级元素
添加伪元素后可以撑起盒子的高度, 所以可以直接设置margin属性
CSS中还有一个东西叫做伪类, 伪元素和伪类不是同一个东西

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,786评论 1 92
  • 清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度 在浮动流中浮动元素内容的高不可以撑起盒子的高 清除...
    极客江南阅读 9,478评论 8 69
  • 清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度 在浮动流中浮动元素内容的高不可以撑起盒子的高 清除...
    光脚的鱼阅读 311评论 0 0
  • 盒子的高度问题 1.标准流中盒子的高度可以被内容高度撑起来;2.浮动流中浮动的内容不能撑起盒子的高度; 为什么要清...
    壹点微尘阅读 396评论 0 0
  • 清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度 在浮动流中浮动元素内容的高不可以撑起盒子的高 清除...
    Zalman1阅读 332评论 0 0