CSS基础-清除浮动

清除浮动

清除浮动

盒子高度问题
  • 在标准流中内容的高度可以撑起盒子的高度
  • 在浮动流中浮动元素内容的高不可以撑起盒子的高
清除浮动方式一
  • 给前面的父盒子添加高度
  • 注意点:在企业开发中能不写高度就不写高度, 所以这种方式不常用
清除浮动方式二
  • 利用clear:both;属性清除前面浮动元素对我的影响
  • 注意点:使用clear:both之后margin-top属性会失效, 所以不常用
清除浮动方式三
  • 在两个有浮动子元素的盒子之间添加一个额外的块级元素
  • 注意点:在外墙法中可以通过设置额外标签的高度来实现margin效果搜狐中大量使用了这个技术, 但是由于需要添加大量无意义的标签, 所以不常用
清除浮动方式四
  • 在前面一个盒子的最后添加一个额外的块级元素
  • 注意点:外墙法会自动撑起盒子的高度, 所以可以直接设置margin属性,和内墙法一样需要添加很多无意义的空标签,有违结构与表现的分离
清除浮动方式五
  • 给前面一个盒子添加overflow:hidden属性
  • 注意点:由于overflow:hidden可以撑起盒子的高度, 所以可以直接设置margin属性,IE8以前不支持利用overflow:hidden来清除浮动, 所以需要加上一个*zoom:1;
清除浮动方式六
  • 给前面的盒子添加伪元素来清除浮动
  • 示例代码
html
<style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            background-color: red;
        }
        .box2{
            background-color: purple;
            /*margin有效*/
            margin-top: 20px;
        }
        ul{
            list-style: none;
        }
        .ul01 li{
            background-color: blue;
        }
        .ul02 li{
            background-color: green;
        }
        li{
            float: left;
        }

        /*这里*/
        .clearfix:after {
            /*生成内容作为最后一个元素*/
            content: "";
            /*使生成的元素以块级元素显示,占满剩余空间*/
            display: block;
            /*避免生成内容破坏原有布局的高度*/
            height: 0;
            /*使生成的内容不可见,并允许可能被生成内容盖住的内容可以进行点击和交互*/
            visibility: hidden;
            /*重点是这一句*/
            clear: both;
        }
        .clearfix {
            /*用于兼容IE, 触发IE hasLayout*/
            *zoom:1;
        }
</style>
  • 注意点:本质上和内墙法一样, 都是在前面一个盒子的最后添加一个额外的块级元素;添加伪元素后可以撑起盒子的高度, 所以可以直接设置margin属性;CSS中还有一个东西叫做伪类, 伪元素和伪类不是同一个东西
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度 在浮动流中浮动元素内容的高不可以撑起盒子的高 清除...
    极客江南阅读 9,478评论 8 69
  • 清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度在浮动流中浮动元素内容的高不可以撑起盒子的高 清除浮...
    Strive_12c4阅读 268评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,786评论 1 92
  • 盒子的高度问题 1.标准流中盒子的高度可以被内容高度撑起来;2.浮动流中浮动的内容不能撑起盒子的高度; 为什么要清...
    壹点微尘阅读 396评论 0 0
  • 1.浮动产生负作用 背景不能显示由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或...
    莫失丿莫忘阅读 413评论 0 1