清除浮动的最简写法

作者:yemoo 来源:yemoo博客 时间:2009-03-30 15:58:00 

元素浮动导致的问题及解决办法大家都应该很熟悉了,举个简单的例子:

以上代码的目的是制作一个简单的横向菜单,但因为对所有的li采用了浮动,导致ul高度丢失,其边框不能包含li元素,解决办法就是对ul子元素清除浮动。

网上很流行的一段清除浮动的代码如下:

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

对于IE只要使元素拥有Layout属性即可清除浮动,方法有很多,如height:1%,overflow:hidden,zoom:1等,但我们一般应选取尽可能不造成副作用的方式,即最优办法是采用zoom:1的办法。

对于符合标准的浏览器,一般采用CSS的:after伪类为浮动元素后面增加一个清除浮动的元素来实现。上面的代码通过增加一个.号,然后通过clear:both;display:block来清除浮动,然后通过visibility:hidden和height:0来隐藏这个点号。

上面的写法其实并不是最简的,根据我自己的试验及在51js上看到某人的办法后尝试出了一个更简单且兼容所有浏览器的写法:

.clearfix {zoom:1} 
.clearfix:after { 
content: '\20';  
display: block;  
clear: both;  
}

content:'\20'指定在浮动列表后增加一个空白字符,首先这个字符不可见,无需visibility:hidden来隐藏,其次他没有高度,无需height:0来隐藏其高度。因此这样就大大简化了原来的代码同时也达到了清除浮动的目的。

下面是完整代码:



 

标签:css,float,浮动,清除浮动
0
投稿

猜你喜欢

  • Hibernate Oracle sequence的使用技巧

    2009-06-19 17:25:00
  • 一段ASP单页显示文件夹下所有图片的代码

    2011-02-28 11:23:00
  • aspjpeg组件通用加水印函数代码

    2011-04-04 10:32:00
  • 网页广告 Banner 设计图文手册

    2007-10-18 19:56:00
  • 如何固定表格的标题行和标题列

    2007-09-20 13:03:00
  • Web表单设计:表单结构

    2011-04-22 12:32:00
  • phar绕过phar与HALT实现文件上传功能

    2023-05-25 06:47:36
  • SQL Server 2005 Express版企业管理器下载

    2009-10-06 14:54:00
  • 下一代web:浏览器存储支持

    2008-06-11 11:50:00
  • ASP 读取MP3文件帧的信息比特率,采样频率,播放时间

    2010-06-04 12:22:00
  • MySQL表设计优化与索引 (三)

    2010-10-25 20:05:00
  • ASP开发10条经验总结

    2007-09-30 13:36:00
  • SQLServer 2008助你轻松编写T-SQL存储过程

    2010-12-06 13:38:00
  • asp获取软件下载的真实地址!再谈获取Response.redirect重定向的URL!

    2010-03-10 22:03:00
  • Xml_javascript分页

    2008-09-04 14:43:00
  • [翻译]标记语言和样式手册 chapter 6 短语元素

    2008-01-25 16:37:00
  • 解构用户研究

    2010-03-15 12:34:00
  • 品牌的统一体验

    2010-05-19 13:08:00
  • 自然描述与自然任务

    2010-01-26 15:51:00
  • Mootools 1.2教程(18)——Class 类(第一部分)

    2008-12-19 12:45:00
  • asp之家 网络编程 m.aspxhome.com