芒果

芒果教你清除浮动

作者 芒果 - 发布于 2010-03-06 21:19 - 共 7 条评论
918
/* 300x250 */

CSS 使用浮动会造成布局的混乱,通常清除浮动的方法是,利用一个如下样式的空 Div:

<div class="clear"></div>
.clear{clear:both;}

更为优良的 CSS 代码是:

.clear:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
.clear{zoom:1;}

这个方法目前已经广泛使用,淘宝口碑,都是这种用法。通过 after 伪类 :after 和 针对 IE6 的独立 CSS Hack 来实现,完全兼容主流浏览器。

当然,这在通过 CSS 在元素之后追加 “.” 并不必要,因为还需要 visibility 来隐藏掉它。通过优化,代码如下:

.clear:after{content:"\20";display:block;height:0;clear:both;}
.clear{zoom:1;}

其中,\20 指在容器后添加空格,这样就避免使用 visibility 隐藏可视性了。

另外,芒果不推荐使用空 div 的方法。单单为了清除浮动而在结构良好的 HTML 中插入没有语义的容器,未免有些突兀。

版权所有,转载请注明出处。
转载自 <a href="http://www.mangguo.org/mangguo-teach-you-clear-float/" title="芒果教你清除浮动" rel="bookmark">芒果教你清除浮动 | 芒果</a>

已经有 7 条评论

  1. 易搜购 - 2010-03-06 22:13

    clear:both; 这个经常用,还没有碰到过特殊的问题。 回应

    #1
  2. zhouqi - 2010-03-28 22:25

    020 算是什么编码? 回应

    #2
  3. zhouqi - 2010-03-28 22:32

    我试了下~content:”"也行~ 回应

    #3
  4. 芒果zhouqi 说 - 2010-03-29 17:18

    写错了,应该是 content:”\20″ 回应

    #4
  5. lily - 2010-04-22 14:49

    写的很好,不知道其它人是怎么写的,我经常使用 .clear{ overflow:hidden; zoom:1;} 来清除浮动,代码简洁,而且兼容各个浏览器,虽然说,因为 overflow:hidden 有一些局限性,而且不能通过 W3C 验证,但我觉得利大于弊,可取。向博主学习了!!!! 回应

    #5
  6. luochong - 2010-07-28 12:30

    after 伪类 ie6、7 支持吗? 如果不支持针对 ie 怎么写? 回应

    #6
  7. 芒果luochong 说 - 2010-07-28 18:35

    IE6 和 IE7 都不支持 :after 这个伪类。 回应

    #7

我简单说几句

推荐文章

最新评论

友情链接

一夜激情