完善clearfix

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            .box1{
                width: 300px;
                height: 300px;
                background-color: #BBFFAA;
                
                
            }
            .box2{
                width: 200px;
                height: 200px;
                background-color: yellow;
                
                /*
                    子元素和父元素相邻垂直外边距会发生重叠,子元素的外边距会传递给父元素
                    使用空的table标签可以隔离父子元素的外边距,阻止外边距重叠
                */
                margin-top: 100px;
                
            }
            
            .box3{
                border: 10px solid red;
            }
            .box4{
                width: 100px;
                height: 100px;
                background-color: blue;
                float: left;
            }
            /*
                解决父子元素外边距重叠
            */
            /* .box1::before{
                content: ""; */
                /*
                    display:table可以将一个元素设置为表格显示
                */
            /*     display: table;
            } */
            /**/
            
            /*
                经过修改后的clearfix是一个多功能的
                    既可以解决高度塌陷,有可以确保父元素和子元素的垂直外边距不会重叠
            */
            .clearfix:before,
            .clearfix::after{
                content: "";
                display: table;
                clear: both;
            }
            /*兼容IE6*/
            .clearfix{
                zoom: 1;
            }
            
            /*解决父元素高度塌陷*/
            /* .clearfix::after{
                content: ""; */
                /*也可以写成table*/
                /* display: block;
                clear: both;
            } */
        </style>
    </head>
    <body>
        <div class="box3 clearfix">
            <div class="box4"></div>
        </div>
        <div class="box1 clearfix">
            <div class="box2"></div>
        </div>
    </body>
</html>

子元素和父元素相邻垂直外边距会发生重叠,子元素的外边距会传递给父元素

  使用空的table标签可以隔离父子元素的外边距,阻止外边距重叠

 

经过修改后的clearfix是一个多功能的

  既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠

.clearfix:befor,.clearfix:after{

   content:" ";

   display:table;

   clear:both;

}

兼容IE6

.clearfix{

  zoom:1;

}

posted @ 2021-07-07 15:05  2237774566  阅读(16)  评论(0)    收藏  举报