不同的浏览器要求不同的样式声明,各浏览器及其各版本有不同程度的 CSS 执行的完整性。采用的是 Internet Explorer 的条件注释语法的思想,并把它内联到 CSS 声明之中。
条件 CSS 主要用于指出一个特别的 CSS 声明是不是应该用于一个特别的浏览器。当然你不希望经常这么做,但是当你需要针对一个浏览器的时候,它会非常有用。可以在U4EA支持列表里看到,大部分的浏览器都支持这种方式。
任意 CSS 声明或者块都可以添加条件声明前缀,这些前缀有3种基本类型:
- [if {!} browser]
- [if {!} browser version]
- [if {!} condition browser version]
! - 声明的否定 (例 NOT) - 可选
browser - 声明针对的浏览器
IE - Internet Explorer
Gecko - Gecko 核心的浏览器 (Firefox, Camino 等)
Webkit - Webkit 核心的浏览器 (Safari, Shiira 等)
SafMob - 移动版 Safari (iPhone / iPod Touch)
Opera - Opera 的浏览器
IEMac - Mac 版本的 Internet Explorer
Konq - Konqueror
IEmob - 移动版 IE
PSP - Playstation Portable
NetF - Net Front
version - 要针对的浏览器版本
实例:
- // 条件-CSS 语法实例
- [if IE] - 如果浏览器是 IE
- [if ! Opera] - 如果浏览器不是 Opera
- [if IE 5] - 如果浏览器是 IE 5
- [if lte IE 6] - 如果浏览器是 IE 6 或者更低版本 (IE 5, IE 4 等)
- [if ! gt IE 6] - 和上面的声明等效, 如果浏览器版本不高于 IE 6
- // 条件 CSS 盒模型例子
- div.box {
- width: 400px;
- [if IE 5] width: 600px;
- padding: 0 100px;
- }
条件 CSS 可以只维护一个 CSS 文件,而不是好几个需要用到 IE 的条件注释的文件。这有助于流线型维护,也使得代码更加清晰。
再进一步,条件 CSS 的一个重要特性是当它发现一条 @import CSS 声明时,它会自动打开并插入需要导入的文件。这样就减少了页面的加载时间,因为浏览器只需要对 CSS 文件做出一条 HTTP 请求。