如何有条件地加载CSS

时间:2014-03-25 21:02:45

标签: html css internet-explorer cross-browser

以下代码定义浏览器是否不是IE执行:

<!--[if !IE]> -->
...
<!-- <![endif]-->

如果我想编辑以上内容怎么办...

IF IE but IE version is less than 9 .. SHOW THIS
ELSE IF IE version is greater than or equal to 9 OR Other Browser .. SHOW THIS

我怎样才能实现它?当搜索所有我发现的是如何决定它是IE版本还是IE版本。

3 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

<!--[if lt IE 7]>      <html class="ie6"> <![endif]-->
<!--[if IE 7]>         <html class="ie7"> <![endif]-->
<!--[if IE 8]>         <html class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html>         <!--<![endif]-->

然后通过以下方式定位您的选择器:

 .ie8 .your-selector

如上所述here

如果你想要一个开关,你也可以在一个类的html标签,例如

<!--[if gt IE 8]><!--> <html class ="i-am-so-happy-it-is-no-ancient-ie"><!--<![endif]-->

并像这样使用它:

.i-am-so-happy-it-is-no-ancient-ie .your-selector{...}
.ie6 .your-selector {...}

修改 我忘记了IE 9 .. Acutally Paul Irish建议使用这种形式(稍微调整一下我可以使用单个.ie .class进行非ie切换 - 尽管你必须知道,即6不支持多个班级,但你明白了):

<!--[if lt IE 7 ]> <html class="ie6 ie"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7 ie"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8 ie"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9 ie"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-ie"> <!--<![endif]-->

有关原因的解释,请参阅上面的link

答案 1 :(得分:2)

你可以在HTML页面中为IE浏览器添加CSS条件语句,而不是在CSS文件中。

目标IE 8和更高

<!--[if gt IE 7]>
    <link rel="stylesheet" type="text/css" href="ie8-and-up.css" />
<![endif]-->

<!--[if gte IE 8]>
    <link rel="stylesheet" type="text/css" href="ie8-and-up.css" />
<![endif]-->

答案 2 :(得分:1)

使用条件注释来定位IE。

<!--[if !IE]> -->
According to the conditional comment this is not IE 5-9
<!-- <![endif]-->

你可以做更高级的事情:http://www.impressivewebs.com/conditional-comments/