`
piziwang
  • 浏览: 240011 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

清除浮动的最简写法

阅读更多

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

<style type="text/css"> 
ul{border:1px solid #ccc} 
ul li{float:left;width:120px;line-height:25px;text-align:center} 
</style> 
<ul><li>选项一</li><li>选项二</li><li>选项三</li></ul> 

以上代码的目的是制作一个简单的横向菜单,但因为对所有的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来隐藏其高度。因此这样就大大简化了原来的代码同时也达到了清除浮动的目的。

下面是完整代码:

 

<style type="text/css"> 
.clearfix {zoom:1} 
.clearfix:after { 
content: '\20'; 
display: block;  
clear: both; 
} 
ul{border:1px solid #ccc} 
ul li{float:left;width:120px;line-height:25px;text-align:center} 
</style> 
<ul class="clearfix"><li>选项一</li><li>选项二</li><li>选项三</li></ul>
 
  • 大小: 673 Bytes
  • 大小: 739 Bytes
分享到:
评论

相关推荐

    xhtml+css清除浮动的3种方法

    这种方法是最直观的一种方式,它通过在浮动元素后面添加一个额外的空标签(通常是`&lt;div&gt;`),并设置`clear:both`来清除浮动的影响。例如: ```css .clear { clear: both; height: 0; font-size: 0; overflow: ...

    Css设置img属性让图片水平居中/居左/居右的写法

    清除浮动的一种常见方法是在浮动元素后面添加一个空的`&lt;div&gt;`,并赋予它清除浮动的样式,例如: ```css .clear { clear: both; } ``` 然后在HTML中适当位置加入: ```html &lt;div class="clear"&gt;&lt;/div&gt; ``` 总的来说...

    DIV+CSS网页布局教程DIV+CSS网页布局技巧如何实现DIV+CSS网页布局.pdf

    2. 使用浮动功能时记得适当清除浮动指令,浮动是个危险的功能,未必会产生所期望的结果。 3. 边界重合时利用padding或border来避免出现不应该出现的空间。 4. 尝试避免同时对元素指定padding/border以及高度或宽度...

    最新版面试宝典(1).pdf

    - 清除浮动的不同方法。 - 响应式设计的实现方法,适应不同分辨率的页面布局技巧。 - 渐进增强与优雅降级的概念及其区别。 - 结构与表现分离的Web页面设计理念。 - Web语义化的理解和重要性。 - CSS选择器的...

    HTML属性以及相对应的CSS方法

    解决方法之一是使用`clear`属性或添加一个清除浮动的元素。 #### 2. 外边距(Margin) **HTML属性:** `marginwidth="0"`, `leftmargin="0"`, `marginheight="0"`, `topmargin="0"` **CSS方法:** `margin: 0;` **...

    CSS中:before和:after伪元素使用的奇技淫巧

    对于更高级的技巧,:before和:after伪元素可以被用来创建视觉特效,例如清除浮动、替换背景图片或者为元素添加装饰性内容等。清除浮动时,可以使用一个特殊的类(如.clear-fix),配合overflow和zoom属性来实现,...

    新手学习DIV+CSS难点之经验总结

    当多个`div`在同一行上并列显示时,需要使用清除浮动的方法避免布局混乱。 **CSS示例代码:** ```css .clearfix::after { content: ""; display: table; clear: both; } ``` **HTML示例代码:** ```html ;...

    前端PC端布局CSS基础

    3. 清除浮动:避免父元素高度塌陷,可用 `clear` 属性或伪元素方法。 十三、CSS定位 1. 定位解决元素相对位置的问题。 2. 定位模式:静态(默认)、相对、绝对、固定和粘性。 3. 子绝父相:子元素绝对定位,父元素...

    vue前端面试总结.txt

    - 使用 `clear:both`、`overflow:hidden` 或者 `display:flex` 都是常见的清除浮动的方法。 3. **jQuery 获取 AJAX 的步骤** - jQuery 简化了 AJAX 的使用过程,通过 `.ajax()` 或 `.post()` 方法可以轻松发起...

    Sass-Shorts-Helpers

    例如,`clearfix()` 混合可以帮助解决浮动元素导致的父元素高度塌陷问题,只需要在需要清除浮动的地方调用这个混合即可。还有 `media-query()` 混合,它简化了媒体查询的写法,使响应式设计更简洁。 Sass-Shorts-...

    GridSystemForLess:更少的吊带系统

    4. Mixins:可复用的代码块,比如一个简单的浮动或清除浮动的mixin,可以在多个地方使用,提高代码复用率。 在"GridSystemForLess-master"压缩包中,可能包含以下文件和目录: 1. `less/` 目录:存储所有Less源码...

    超实用的jQuery代码段

    11.18 最优化的循环语句写法 11.19 如何构建最优化的字符串 11.20 使用jQuery产生GUID值 11.21 使用jQuery实现聚合函数 11.22 用jQuery打印网页的特定区域 11.23 禁止表单被提交 11.24 使用delay()延迟执行动画 ...

    做网页中需要掌握的八个CSS布局技巧

    为了避免这类问题的发生,开发者应当确保正确地使用浮动,并且在必要的时候使用清除(clear)属性来消除浮动的影响。Eric Meyer在其个人网站Complex Spiral Consulting上提供了一些关于如何正确处理浮动的教程,这些...

    有条理、完整详细 前端笔记

    - 如何清除表单内容。 - **5-9 form表单中的label标签** - `&lt;label&gt;`标签的用途。 - 如何关联标签与输入控件。 #### 第6章:开始学习CSS,为网页添加样式 - **6-1 认识CSS样式** - CSS的基本概念。 - 如何将...

Global site tag (gtag.js) - Google Analytics