我尝试将IE条件放在CSS文件中,但这似乎不起作用。是否有CSS的构造,如果浏览器是IE,你可以告诉它使用这种背景颜色?如果其他条件,我也找不到任何东西,它是否存在?有人可以提供一个例子。
答案 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的解决方案相比,这有一些优势。有关详细信息,请查看上面的帖子。