clear的理解

之前对于clear,很少用。

以前对divfloat之后,影响了其他元素,所以我设计的所有web页面,第一定义就是float。这样所有页面的元素都是脱离文档流来定位的,虽然天下乌鸦一般黑,——但是总是感觉比较另类,不那么高级。


于是今天看到一个clear:这个只是会影响自己dom元素,不会影响其他元素。

增加clear之后,页面在渲染本dom的时候,按照文档流,进行位置判断,如果发现将要依附的元素有float属性,则避而远之,继续在判断下一个,一直找到最后一float,然后换一行,安顿下来。(clear:与 float  不共戴天,但clear弱势,不能左右别人,只能避而远之,但是又不会离太远,就是紧接着下一行

比如 :按照加载顺序,浏览器这样判断

div1 :脱离文档流按照左浮动

div2:发现div1并没有占用位置,就默认顶到了第一个——其实就藏到了div1的背后

div3:按照文档流,先判断2的位置,然后基于标准的文档流,然后在相对于2的位置,换一行进行float

div4:会找上一个元素,发现是div3,是一个带float,赶快躲开 于是紧接着div3安顿下来了。

<style type="text/css">
    #test div{
        border:1px solid #000;
        /*position: relative;*/
/*        top:5px;
        left:5px;*/
        /*float:left;*/
    }
</style>
<div style="width:1200px; border:1px solid #f60" id="test">
    <div style="width:200px;height:100px;border:1px solid blue;float:left">1</div>
    <div style="width:200px;height:150px;border:1px solid red;">2</div>
    <div style="width:200px;height:150px;border:1px solid green;float:left">3</div>
    <div style="width:300px;clear:left">clear</div>
</div>

类似于这种




还有一个例子

<style type="text/css">
    #test div{
        border:1px solid #000;
        /*position: relative;*/
/*        top:5px;
        left:5px;*/
        /*float:left;*/
    }
</style>
<div style="width:1200px; border:1px solid #f60" id="test">
    <div style="width:200px;height:200px;border:1px solid blue;float:left">1</div>
    <div style="width:200px;height:150px;border:1px solid red;;float:left">2</div>
    <div style="width:300px;clear:left">clear</div>
    <div style="width:200px;height:150px;border:1px solid green;">3</div>
</div>
效果:


参考这里:http://www.zhangxinxu.com/wordpress/2014/06/understand-css-clear-left-right-and-use/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值