深入剖析——float之个人见解

浮动的原本作用仅仅是为了实现文字的环绕效果。

以下分别是html与css代码,显示效果如下图。因为两个div使用了float浮动属性,所以脱离了标准文档流。让父元素撑开高度,我们需要清除浮动。

 

<div class="box">
        <div class="box-left">我是left-box</div>
        <div class="box-right">我是right-box</div>
    </div>

 

.box{
            width: 600px;
            margin:50px auto;
            border:1px solid #f00;
            padding:10px;  
            background: #000;
        }
        .box-left,.box-right{
            width: 200px;
            height: 150px;
            border:2px solid #fff;
            background: #999;
        }
        .box-left{
            float: left; 
        }
        .box-right{
            float: right;
        }

一共有两种方法——

1.在类为"box"的结束标签中加一个空div,并设置样式——<div style="clear:both"></div>

2.使用css伪类after——

after顾名思义是在元素后面的意思,实质是在元素之后添加内容。

这个伪元素允许制作人员在元素内容的最后面插入生成内容,需要和content属性一起使用,设置在对象后发生的内容。默认地,这个伪元素是inline行内元素,这里我们使用属性 display 改变这一点。  

PS:所有主流浏览器都支持 :after 伪元素,但对于IE来说,只有IE8以上版本支持。

{*zoom:1}属于IE浏览器的专有属性。(支持IE6和IE7)

.clearfix必须定义在包含浮动子元素的父级元素上!!!!


posted @ 2015-03-18 23:36  前端小豪  阅读(177)  评论(0编辑  收藏  举报