你把IE条件放在css文件或html文件中吗?

时间:2009-02-20 19:02:14

标签: css

我尝试将IE条件放在CSS文件中,但这似乎不起作用。是否有CSS的构造,如果浏览器是IE,你可以告诉它使用这种背景颜色?如果其他条件,我也找不到任何东西,它是否存在?有人可以提供一个例子。

5 个答案:

答案 0 :(得分:17)

IE条件进入HTML,应该用于包含一个额外的CSS文件,根据IE黑客的需要覆盖CSS。


示例:

<head>
    <style type="text/css">
    @import url(/styles.css);
    </style>
    <!--[if lte IE 6]>
        <link rel="stylesheet" type="text/css" href="ie6.css" />
    <![endif]-->
</head>

答案 1 :(得分:11)

我从jQuery中获取了我的提示并使用我的条件格式来创建容器元素

<body class="center">
<!--[if IE 5]><div id="ie5" class="ie"><![endif]-->
<!--[if IE 6]><div id="ie6" class="ie"><![endif]-->
<!--[if IE 7]><div id="ie7" class="ie"><![endif]-->
<!--[if IE 8]><div id="ie8" class="ie"><![endif]-->
    <div class="site text-left">

    </div>
<!--[if IE]></div><![endif]-->
</body>

然后我可以将条件信息放在css中,就像这样

.site { width:500px; }
.ie .site { width:400px; }
#ie5 .site { width:300px; }

答案 2 :(得分:3)

CSS中没有这样的条件,但是如果各种版本的IE之间的差异不显着,你可以使用“Holly hack”:

div.class { /* whatever */ }
* html div.class { /* IE-only */ }

答案 3 :(得分:2)

[条件注释](http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx)是HTML注释,因此不能在CSS上下文中使用。

如果你想将特定的CSS规则仅用于IE,你必须使用CSS hacks。

答案 4 :(得分:1)

我建议使用类似于bendewey提出的解决方案的东西,但是改为围绕html标签的条件类。据我所知,保罗爱尔兰的博客(http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

首先提到了这一点
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->

然后在你使用的CSS中:

.box {background: blue;}
.ie7 .box {background: green;}

与使用额外div的解决方案相比,这有一些优势。有关详细信息,请查看上面的帖子。