Skip navigation.

踩 IE

I hate IE forever.

使用条件注释使不同版本的IE读取不同的内容

http://www.w3cn.org/article/translate/2005/104.html

阿捷的这篇文章介绍了一些CSS的技巧(hacks),其中谈到了从IE 5.0开始加入的条件注释(conditional comments),这里对这个技巧做一些补充

示例:
<!--[if IE]>仅IE可见<![endif]-->

这段代码只有IE识别,对于其他浏览器是不可见的,这样我们很方便地针对IE书写不同的样式表。但是IE不同的版本渲染CSS仍然有区别,有时候我们还需要针对不同版本的IE书写不同的样式表,而且即将完成的IE7会修正以往的一些问题,但它同样识别上面的条件注释,这样的话仅仅上面那种条件判断注释是不够用的,为了避免“撞车”,这里比较全面的介绍一下IE的条件注释。

将以下语法加在"IE"前,在"IE"后加上具体的版本号,注意,如果写成"IE 5"则表示为IE5到IE6之间的所有版本的IE5系列,如果写成"5.0"则包括5.0、5.01等版本,不包括5.5,以此类推。

gt:greater than,选择条件版本以上版本,不包含条件版本
lt:less than,选择条件版本以下版本,不包含条件版本
gte:greater than or equal,选择条件版本以上版本,包含条件版本
lte:less than or equal,选择条件版本以下版本,包含条件版本
!:选择条件版本以外所有版本,无论高低

例如,如果我们要选择IE 5.01,那么可以写成:"IE 5.0"、"lte IE 5.0" 、"!gt IE 5.0"、"lt IE 5.5000"、"!gte IE 5.5000"
推荐
<!--[if IE 5.0]>仅IE 5.0可见<![endif]-->

如果我们要选择IE 5.5、6.0和7.0,那么可以写成: "!IE 5.0"、"!lte IE 5.0"、"gt IE 5.0"、"!lt IE 5.5000"、"gte IE 5.5000"
推荐
<!--[if !IE 5.0]>仅IE 5.5、6.0和7.0可见<![endif]-->

如果我们只想选择IE 5.5
<!--[if IE 5.5000]>仅IE 5.5可见<![endif]-->

以此类推。更多的见


http://positioniseverything.net/articles/multiIE.html
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/ccomment_ovw.asp
判断你的IE版本和各种条件注释写法的测试
http://positioniseverything.net/articles/sidepages/cond_1.html

注意,可能有很多朋友系统上是IE 6.0,又下载了绿色版IE 5.0和5.5,这样的话这种条件判断就失效了,因为IE的版本信息在注册表里。即使你运行了IE 5.0,它的版本仍然显示为6.0,只是渲染引擎变成5.0而已。下载一个能更改IE版本的工具可能有效(比如优化大师),但我还没试过p:

总结一下中国网站、设计师的“七宗罪”,请对号入座使用Opera的user.css过滤广告

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies

Download Opera, the fastest and most secure browser
S M T W T F S