灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3257回复:0

CSS:再论清除浮动的空DIV方法

楼主#
更多 发布于:2012-01-31 23:02
[td=1,1,5]
CSS 使用浮动会造成布局的混乱,通常清除浮动的方法是,利用一个如下样式的空 Div:
[pre]

.clear{clear:both;}[/pre]
更为优良的 CSS 代码是:
[pre].clear:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
.clear{zoom:1;}[/pre]
这个方法目前已经广泛使用,淘宝、口碑,都是这种用法。通过 after 伪类 :after 和 针对 IE6 的独立 CSS Hack 来实现,完全兼容主流浏览器。

当然,这在通过 CSS 在元素之后追加 "." 并不必要,因为还需要 visibility 来隐藏掉它。通过优化,代码如下:
[pre].clear:after{content:"020";display:block;height:0;clear:both;}
.clear{zoom:1;}[/pre]
其中,020 指在容器后添加空格,这样就避免使用 visibility 隐藏可视性了。

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

喜欢0 评分0
游客

返回顶部