
CSS新方法:清除浮动及IE兼容处理
91KB |
更新于2024-08-29
| 86 浏览量 | 举报
收藏
“CSS 清除浮动的新方法”
在网页布局中,浮动元素可能导致父容器高度塌陷,为解决这个问题,CSS 提供了多种清除浮动的方法。这里介绍的是一个较为古老但仍然有效的清除浮动技巧,它被称为“clearfix”方法。这个方法主要通过添加额外的CSS规则来确保包含浮动元素的容器能够正确地包裹其内容。
首先,来看原始的clearfix方法:
```css
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: "";
clear: both;
height: 0;
}
.clearfix {
display: inline-table;
}
/* Hides from IE-mac \*/
* html .clearfix {
height: 1%;
}
.clearfix {
display: block;
}
```
这段代码首先定义了一个`.clearfix:after`伪元素,它不可见,块级显示,内容为空,并设置了清除浮动。这样做的目的是在不增加额外HTML标记的情况下,为包含浮动元素的容器创建一个无形的“填充物”,使其高度能够包含所有浮动元素。`display: inline-table`是为了兼容旧版的IE/Mac浏览器。接下来的两条规则是对IE/Mac的特定hack,`height: 1%`是为了触发IE6的haslayout机制。
随着时间推移,Internet Explorer 的市场份额及版本更迭,对IE/Mac的支持变得不再必要。因此,可以简化clearfix方法,只针对IE6和IE7进行hack:
```css
/* new clearfix */
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: "";
clear: both;
height: 0;
}
* html .clearfix {
zoom: 1; /* IE6 */
}
*:first-child+html .clearfix {
zoom: 1; /* IE7 */
}
```
在这个新方法中,我们移除了对IE/Mac的兼容性处理,并为IE6和IE7分别添加了`zoom: 1`,这是因为这两个版本的IE不支持`:after`伪元素,但可以通过`zoom`属性触发haslayout,从而实现清除浮动的效果。对于支持`:after`的现代浏览器,这个简化后的代码已经足够使用。
这种方法的一个讨论点是,为何不直接使用`*`选择器对IE6和IE7同时应用`zoom: 1`。实际上,这样做也可以达到相同效果,但可能会引入一些不必要的兼容性问题,因为`*`选择器在某些情况下可能会影响到其他CSS规则。所以,通常推荐针对每个特定的浏览器版本使用单独的hack。
clearfix方法是一种实用的CSS技术,用于处理浮动元素带来的布局问题。随着浏览器的更新,这些方法也在不断进化,以适应新的标准和更好的浏览器兼容性。在实际开发中,开发者可以根据项目需求和目标浏览器范围来选择合适的方法。
相关推荐










NEDL003
- 粉丝: 160
最新资源
- C#实现汉字简码转拼音首字母功能的源代码
- IconMaster图片转换器:PNG转ICO格式工具
- 深入学习PL_SQL与Oracle函数大全指南
- 微软C#程序设计语言课件 VS2003版本深度学习资源
- 实用工具:屏幕刷新率锁定技巧大揭秘
- VC数据库实例教程:工资与宾馆管理系统解析
- 掌握计算机组成原理:全面实用学习资源
- 全面掌握PowerDesigner数据模型设计教程
- 掌握strace命令,深入进行Linux系统调用故障排查
- 实时监控电脑端口的Windows端口查看工具
- 深入了解中国移动计费项目开发:eclipse+j2ee架构实践
- 压缩包子文件管理与操作指南
- 掌握打字技巧:金山打字通VB6.0键盘练习源码解析
- MBA背单词升级工具:自定义词库与智能TTS朗读
- 轻松打造个性手机铃声的编辑器
- 3dsmax三维设计基础教程全解析
- vb-SQL200汽车修理管理系统:配件进销存与账务处理
- 学校教学课件:全面的数据库原理教程
- ISPLAY单片机下载软件的使用与功能介绍
- MySQL数据库连接新选择:mysql-connector-net-5.2.5
- .NET常用通用类库及其实用功能介绍
- 探索HTML案例教学的有效方法
- 深入解析WIN32 PE文件头的PEDetective工具
- C#委托使用示例及源码解析