我正在尝试使用IE特定的条件语句来根据浏览器类型更改类设置。我觉得他们可以做到这一点,但我似乎无法让它发挥作用。
下面是一个简单的例子,如果浏览器是IE,文本应该是蓝色,否则文本应该保持红色。
“浏览器是IE”身体中的声明工作正常,如果我打开firefox它不存在,Internet Explorer ..它是。
我做错了什么?
<html>
<head>
<style type="text/css">
.class{color:red;}
<!--[if IE]>
.class{color:blue;}
<![endif]-->
</head>
</style>
<body>
<!--[if IE]>
This browser is IE
<![endif]-->
<p class="class">Color changing text based on browser</p>
</body>
</html>
答案 0 :(得分:9)
首先,您的代码不起作用 - 您应该将css读为.color
而不是.class
其次条件语句在css中不起作用。因此,编写代码使得条件是围绕IE特定样式。
<html>
<head>
<style type="text/css">
.color{ color:red; }
</style>
<!--[if IE]>
<style type="text/css">
.color{ color:blue; }
</style>
<![endif]-->
</head>
<body>
<!--[if IE]>
This browser is IE
<![endif]-->
<p class="color">Color changing text based on browser</p>
</body>
</html>
答案 1 :(得分:2)
显然他们不能在样式标签内工作。 (见这里:http://reference.sitepoint.com/css/conditionalcomments)
看来你可以在head标签中使用它们,并且如果它是IE则包含一个外部CSS文件,如果是另一个浏览器则隐藏该css文件。
答案 2 :(得分:1)
如果'hack'针对IE6或更早版本,您也可以按照以下方式执行:
.color {
color: red;
}
* html .color {
color: blue;
}
请注意“* html”前缀。这仅由IE6及更早版本解析。您还可以使用“!important”声明。 IE6及更早版本将忽略特定行。
.color {
color: red !important;
color: blue;
}
如果你有相对较多的,更好的做法是使用条件语句加载一个额外的CSS样式表文件。
答案 3 :(得分:0)
你也可以做颜色:红色; _color:蓝色;