快速业务通道

通过CSS实例实现清除浮动

作者 佚名技术 来源 CSS技术 浏览 发布时间 2012-03-02
EST DIV</div>
  •     <div style="clear:both;"></div>
  • </div>

    显示的结果如下:

  • P_1160709321_0.gif
    显示正常了

    我们看到,在容器DIV内要显示出来的float:left的所有的DIV之后,我们添加了这样的一个DIV:<div style="clear:both"></div>  。这样,其实就在最后增加了clear的动作。

    但是,我总觉得,这么多加一个DIV有点不妥。一是多了一个没有意义的DIV,二是在用dojo做Drag & Drop的时候,由于这个DIV是容器DIV的一个字节点,如果这个节点被移动,则会造成排版上的Bug:如果要显示的蓝框的DIV被移到这个DIV之后,则因为clear:both,它会被强制换一行显示。所以,我一直在寻找更好的解决办法。

    昨天在无数次的询问了Google大仙后,我终于找到了How To Clear Floats Without Structural Markup 这篇文章,找到了解决的办法。

    首先设置这样的CSS:
    CSS代码:
    1. .clearfix:after {
    2.     content: ".";
    3.     display: block;
    4.     height: 0;
    5.     clear: both;
    6.     visibility: hidden;
    7. }
    然后,我们再修改原来的HTML代码,让外部的容器DIV来使用这个CSS:
    HTML4STRICT代码:
    1. <div style="width:200px;border:1px solid red;" class="clearfix">
    2.     <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    3.     <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    4.     <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    5.     <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    6.    <div  style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    7. </div>
    在Firef

    凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

    分享到: 更多

    Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

    地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

    电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

    《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号