我正在尝试使用IE特定的条件语句来根据浏览器类型更改类设置。我的印象是他们可以做到这一点,但我似乎不能让它工作。
下面是一个简单的例子,如果浏览器是IE,文本应该是蓝色的,否则文本应该是红色的。
主体中的"The browser is 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>发布于 2009-11-04 04:12:47
首先,你的代码不能工作--你应该让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>发布于 2009-11-04 04:11:26
显然,它们不能在style标签中工作。(查看此处:http://reference.sitepoint.com/css/conditionalcomments)
不过,你似乎可以在head标签中使用它们,如果是IE,可以包含一个外部CSS文件,如果是另一个浏览器,则隐藏该css文件。
发布于 2009-11-04 04:18:53
如果“黑客攻击”针对的是IE6或更早的版本,您也可以执行以下操作:
.color {
color: red;
}
* html .color {
color: blue;
}注意"* html“前缀。这只能由IE6和更早的版本解析。您还可以使用"!important“声明。然后,该特定行将被IE6和更早的版本忽略。
.color {
color: red !important;
color: blue;
}如果您有相对较多的CSS样式表文件,更好的做法是使用条件语句加载一个额外的CSS样式表文件。
https://stackoverflow.com/questions/1669825
复制相似问题