欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
    css清除浮动的方法一:
    使用带clear属性的空元素
    在浮动元素后使用一个空元素如<divclass="clear"></div>,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。亦可使用<brclass="clear"/>或<hrclass="clear"/>来进行清理。
    .news{
    background-color:gray;
    border:solid1pxblack;
    }
    .newsimg{
    float:left;
    }
    .newsp{
    float:right;
    }
    .clear{
    clear:both;
    }
    <divclass="news">
    <imgsrc="news-pic.jpg"/>
    <p>sometext</p>
    <divclass="clear"></div>
    </div>
    说明:
    优点:简单,代码少,浏览器兼容性好。
    缺点:需要添加大量无语义的html元素,代码不够优雅,后期不容易维护。
    css清除浮动的方法二:
    使用CSS的overflow属性
    给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在IE6中还需要触发hasLayout,例如为父元素设置容器宽高或设置zoom:1。
    .news{
    background-color:gray;
    border:solid1pxblack;
    overflow:hidden;
    *zoom:1;
    }
    .newsimg{
    float:left;
    }
    .newsp{
    float:right;
    }
    <divclass="news">
    <imgsrc="news-pic.jpg"/>
    <p>sometext</p>
    </div>
    说明:
    在添加overflow属性后,浮动元素又回到了容器层,把容器高度撑起,达到了清理浮动的效果。
    优点:不存在结构和语义化问题,代码量极少
    缺点:内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素;04年POPO就发现overflow:hidden会导致中键失效,这是我作为一个多标签浏览控所不能接受的。所以还是不要使用.
    css清除浮动的方法三:
    使用邻接元素处理
    什么都不做,给浮动元素后面的元素添加clear属性。
    .news{
    background-color:gray;
    border:solid1pxblack;
    }
    .newsimg{
    float:left;
    }
    .newsp{
    float:right;
    }
    .content{
    clear:both;
    }
    <divclass="news">
    <imgsrc="news-pic.jpg"/>
    <p>sometext</p>
    <divclass="content"></div>
    </div>
    css清除浮动的方法四:
    使用CSS的:after伪元素
    结合:after伪元素(注意这不是伪类,而是伪元素,代表一个元素之后最近的元素)和IEhack,可以完美兼容当前主流的各大浏览器,这里的IEhack指的是触发hasLayout。
    给浮动元素的容器添加一个clearfix的class,然后给这个class添加一个:after伪元素实现元素末尾添加一个看不见的块元素(Blockelement)清理浮动。
    .news{
    background-color:gray;
    border:solid1pxblack;
    }
    .newsimg{
    float:left;
    }
    .newsp{
    float:right;
    }
    .clearfix:after{
    content:"020";
    display:block;
    height:0;
    clear:both;
    visibility:hidden;
    }
    .clearfix{
    /*触发hasLayout*/
    zoom:1;
    }
    <divclass="newsclearfix">
    <imgsrc="news-pic.jpg"/>
    <p>sometext</p>
    </div>
    说明:通过CSS伪元素在容器的内部元素最后添加了一个看不见的空格"020"或点".",并且赋予clear属性来清除浮动。需要注意的是为了IE6和IE7浏览器,要给clearfix这个class添加一条zoom:1;触发haslayout。








本文转载自中文网
 

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/css3-style/c57120.shtml