元素浮动导致的问题及解决办法大家都应该很熟悉了,举个简单的例子:
<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
分享到:
相关推荐
这种方法是最直观的一种方式,它通过在浮动元素后面添加一个额外的空标签(通常是`<div>`),并设置`clear:both`来清除浮动的影响。例如: ```css .clear { clear: both; height: 0; font-size: 0; overflow: ...
清除浮动的一种常见方法是在浮动元素后面添加一个空的`<div>`,并赋予它清除浮动的样式,例如: ```css .clear { clear: both; } ``` 然后在HTML中适当位置加入: ```html <div class="clear"></div> ``` 总的来说...
2. 使用浮动功能时记得适当清除浮动指令,浮动是个危险的功能,未必会产生所期望的结果。 3. 边界重合时利用padding或border来避免出现不应该出现的空间。 4. 尝试避免同时对元素指定padding/border以及高度或宽度...
- 清除浮动的不同方法。 - 响应式设计的实现方法,适应不同分辨率的页面布局技巧。 - 渐进增强与优雅降级的概念及其区别。 - 结构与表现分离的Web页面设计理念。 - Web语义化的理解和重要性。 - CSS选择器的...
解决方法之一是使用`clear`属性或添加一个清除浮动的元素。 #### 2. 外边距(Margin) **HTML属性:** `marginwidth="0"`, `leftmargin="0"`, `marginheight="0"`, `topmargin="0"` **CSS方法:** `margin: 0;` **...
对于更高级的技巧,:before和:after伪元素可以被用来创建视觉特效,例如清除浮动、替换背景图片或者为元素添加装饰性内容等。清除浮动时,可以使用一个特殊的类(如.clear-fix),配合overflow和zoom属性来实现,...
当多个`div`在同一行上并列显示时,需要使用清除浮动的方法避免布局混乱。 **CSS示例代码:** ```css .clearfix::after { content: ""; display: table; clear: both; } ``` **HTML示例代码:** ```html ;...
3. 清除浮动:避免父元素高度塌陷,可用 `clear` 属性或伪元素方法。 十三、CSS定位 1. 定位解决元素相对位置的问题。 2. 定位模式:静态(默认)、相对、绝对、固定和粘性。 3. 子绝父相:子元素绝对定位,父元素...
- 使用 `clear:both`、`overflow:hidden` 或者 `display:flex` 都是常见的清除浮动的方法。 3. **jQuery 获取 AJAX 的步骤** - jQuery 简化了 AJAX 的使用过程,通过 `.ajax()` 或 `.post()` 方法可以轻松发起...
例如,`clearfix()` 混合可以帮助解决浮动元素导致的父元素高度塌陷问题,只需要在需要清除浮动的地方调用这个混合即可。还有 `media-query()` 混合,它简化了媒体查询的写法,使响应式设计更简洁。 Sass-Shorts-...
4. Mixins:可复用的代码块,比如一个简单的浮动或清除浮动的mixin,可以在多个地方使用,提高代码复用率。 在"GridSystemForLess-master"压缩包中,可能包含以下文件和目录: 1. `less/` 目录:存储所有Less源码...
11.18 最优化的循环语句写法 11.19 如何构建最优化的字符串 11.20 使用jQuery产生GUID值 11.21 使用jQuery实现聚合函数 11.22 用jQuery打印网页的特定区域 11.23 禁止表单被提交 11.24 使用delay()延迟执行动画 ...
为了避免这类问题的发生,开发者应当确保正确地使用浮动,并且在必要的时候使用清除(clear)属性来消除浮动的影响。Eric Meyer在其个人网站Complex Spiral Consulting上提供了一些关于如何正确处理浮动的教程,这些...
- 如何清除表单内容。 - **5-9 form表单中的label标签** - `<label>`标签的用途。 - 如何关联标签与输入控件。 #### 第6章:开始学习CSS,为网页添加样式 - **6-1 认识CSS样式** - CSS的基本概念。 - 如何将...