踩 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过滤广告

Comments

Evan Zhouleaf Sunday, December 25, 2005 10:30:19 AM

。。偶觉得只针对IE5.5/6.0/7.0的话,似乎用

更为有用,因为如果是
<!--[if !IE 5.0]>这样的话,对于IE4.0/3.0也可现了...

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