IE版本不动,有些地方的css表现也不同。为了hack,有时候需要用到版本判断。
经典的hack是使用型号*下横线_感叹号!加属性来做的(详见文章CSShack,区分IE6,IE7,Firefox),不过感觉比较麻烦。还有一种是直接用条件语句来写的,见下文:
IE8出到现在还没敢装,前些天下载了个Xenocode Browser Sandbox安装了下,发现之前一直用的一个纯CSS横向导航的水平居中出了问题,在IE8下完全居左了。找了很久没发现问题所在,索性每份CSS分开 屏蔽,最终确定是针对IE的CSS问题,得避掉IE8只对IE7及以下版本设置。
之前只是针对所有的IE浏览器:
<!--[if IE]> <link href="Style/IE.css" rel="stylesheet" type="text/css" /> <![endif]-->
要避掉IE8的话就得:
<!--[if lt IE 8]> <link href="Style/IE.css" rel="stylesheet" type="text/css" /> <![endif]-->
lt在此作小于用,也就是小于IE8的版本都能识别。
或者:
<!--[if lte IE 7]> <link href="Style/IE.css" rel="stylesheet" type="text/css" /> <![endif]-->
lte在此作小于及等于用,也就是小于及等于IE7的版本能识别。
或者:
<!--[if !(IE 8)]> <link href="Style/IE.css" rel="stylesheet" type="text/css" /> <![endif]-->
<!–[if !(IE 8)]><![endif]–>在此单独避掉IE8版本。
在网上找了以下代码,测试了下有几个不符合:
1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
2. <!--[if IE]> 所有的IE可识别 <![endif]-->
3. <!--[if IE 5.0]> 只有IE5.0可以识别 <![endif]-->
4. <!--[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]-->
5. <!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![endif]-->
6. <!--[if IE 6]> 仅IE6可识别 <![endif]-->
7. <!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
8. <!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
9. <!--[if IE 7]> 仅IE7可识别 <![endif]-->
10. <!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
11. <!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
经过测试后:
5. <!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![endif]-->
这个只有IE6以上的版本才可识别,也就是不包括IE5.0
7. <!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
这个只有IE5以下的版本才能识别,也就是不包括IE6
10. <!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
这个只有IE6以下的版本才能识别,也就是不包括IE7
后来才在经典那找到:
gt = Great Than 大于 > = > 大于号
lt = Less Than 小于 < = < 小于号
gte = Great Than or Equal 大于或等于
lte = Less Than or Equal 小于或等于
一下就明白过来了,还费了那么大劲。