针对不同版本的IE浏览器的条件CSS应用

2016-02-19 23:40 5 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的针对不同版本的IE浏览器的条件CSS应用,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - Web开发 】

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

介绍

毫无疑问,任何一个试图使用 CSS 的网页设计师和开发人员都会发现不同的浏览器要求不同的样式声明。这些烦恼归咎于各浏览器及其各版本不同程度的 CSS 执行的完整性。条件 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 - 要针对的浏览器版本

condition - 算术符
lt - 小于
lte - 小于等于
eq - 等于
gte - 大于等于
gt - 大于

一些条件声明的例子:

// 条件-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

因为许多实例认为 div 是具有 width 和 padding 的盒类。因此它也应该在 IE 5 中表现正常(我发现很多人已经放弃支持 IE 5了,但这是一个经典例子)。IE 5的盒模型不标准,因此这就是使用条件 CSS 解决的方法:

// 条件 CSS 盒模型例子  
div.box {  
    width: 400px;  
    [if IE 5] width: 600px;  
    padding: 0 100px;  
}

像你所看到的,条件 CSS 使得你可以只维护一个 CSS 文件,而不是好几个需要用到 IE 的条件注释的文件。这有助于流线型维护,也使得代码更加清晰。

再进一步,条件 CSS 的一个重要特性是当它发现一条 @import CSS 声明时,它会自动打开并插入需要导入的文件。这样就减少了页面的加载时间,因为浏览器只需要对 CSS 文件做出一条 HTTP 请求。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

尽管条件 CSS 大多用于针对不同版本的 IE 浏览器,当你在别的浏览器碰到很难修正的 bug(主要使用 Javascript 修正) 的时候,条件 CSS 也是相当有用的。例子包括了缺少 ‘display: inline-block’ 支持的 Firefox 2 和 Safari 2 中的 背景图片 bug。这些 bug 在这些浏览器的最新版本里面已经修正了,但是当这些浏览器占有一定市场份额的时候,向后兼容就很重要了。

来源:http://www.tulaoshi.com/n/20160219/1630372.html

延伸阅读
标签: Web开发
看如下的javascript脚本: if (window.XMLHttpRequest) { //Mozilla, Safari,...IE7  alert('Mozilla, Safari,...IE7 ');  if(!window.ActiveXObject){ // Mozilla, Safari,...   alert('Mozilla, Safari');  } else {   alert('IE7');  } } else {  alert('IE6'); } 看看运行效果: script...
标签: Web开发
我们都知道浏览器之间是有差异的,很多人在使用XHTML+CSS方式制作网页的时候都曾为此无比头痛。要在这些差异的影响下工作需要很多的技巧,“隐藏CSS”就是其中很重要的一种技巧(甚至是最重要的)。这种技巧的主要思想是,用某些方式对某些浏览器隐藏某些重载的CSS规则。 这篇文章并不是想教你如何使用这种技巧,它面向的是有一定CSS...
标签: Web开发
1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width 5.FF: 支...
标签: Web开发
区别IE6与FF:        background:orange;*background:blue; 区别IE6与IE7:        background:green !important;background:blue; 区别IE7与FF:        background:orange; *background:green; 区别FF,IE7,IE6:     ...
标签: Web开发
区别IE6与FF:        background:orange;*background:blue; 区别IE6与IE7:        background:green !important;background:blue; 区别IE7与FF:        background:orange; *background:green; 区别FF,IE7,IE6:    ...

经验教程

107

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部