我们可以像这样使用 <body class="all" <!--[if IE 7]>class="ie"<![endif]--> >
吗?
我希望将所有的CSS都放在一个文件中。
我们可以像这样使用 <body class="all" <!--[if IE 7]>class="ie"<![endif]--> >
吗?
我希望将所有的CSS都放在一个文件中。
body { }
样式,如下所示:<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="ie7.css">
<![endif]-->
在里面有:
body { /* or body.all { */
background: pink; /* Pink is pretty!, or green, whatever */
}
body
声明中有什么样式,都会覆盖先前定义的属性(除了!important
),就像任何其他CSS一样。至于“我想把所有样式都放在一个CSS中”这部分...好吧,如果你要做IE特定的样式,那么你不能拥有有效的CSS,你必须使用hacky CSS,我建议不要这样做。 - Nick Craver您可以使用以下方法:
<body class="all">
<!--[if ie]>
<div class="ieOnly">
<![endif]-->
<div id="content">
<p>...</p>
</div>
<!--[if ie]>
</div>
<![endif]-->
</body>
这样,用于解决IE缺陷/差异的CSS选择器比普通选择器更加具体。
#content {/* for non-IE browsers */}
body.all .ieOnly #content {/* for IE */}
...并且应该覆盖“正常”的#content
规则,而且只有IE浏览器会应用它,因为选择器中有一个在其他浏览器中“不可见”的元素.ieOnly
。
严格来说,你不能按照你在问题中提出的方式做,但是有替代方法可供选择。
body
标签是从来没有有效的。我让你觉得可能吗?(*除非后续的body
标签在框架/iframe内,并且父文档具有适当的doctype。) - David Thomas不,即使使用IE的条件注释,您也无法特定地注释掉属性。但是可能有其他表达方式。