关于CSS中的clear:both的理解和错误的用法

传智播客在2016年的web教学视频中,讲到了clear:both清除浮动的用法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            #div1{
                width: 500px;
                height: 300px;
                border: 1px solid red;
                float: left;
                
            }
            #div2{
                width: 500px;
                height: 300px;
                border: 1px solid black;
            }
            #div3{
                width: 500px;
                height: 300px;
                border: 1px solid pink;
            }
            #div0{
                
                clear: both;
            }
        </style>
    </head>
    <body>
        
        <div id="div1"></div>
        
        <div id="div2"></div>
        <!--<div id="div0"></div>-->
        <div id="div3"></div>
    </body>
</html>

他的本意是DIV2和DIV3不受DIV1浮动的影响,但是他将float属性加在了DIV1上面导致该属性不能生效,这是因为:

在 css 文档里面规定 clear:both 的意思是:要求框的顶边框边低于在源文档中之前生成的任何浮动框的底外边距边。

所以有 clear:both 属性的元素放在浮动元素之后才能起到清除浮动的作用。

对于 clear 属性一定要牢记的是:

clear只能清除该元素之前的浮动。 
"clear on an element only clears the floats before it in document order. It doesn't clear floats after it."

清除浮动的方式有不少,不过最常见,也是最优化的一种就是就是使用伪元素:

  Parent :after{
        clear:both;
        display:block;
        content:"";
    }

  

转载于:https://www.cnblogs.com/JSD1207ZX/p/10941536.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值