我知道如果您在 Internet Explorer 中,您可以使用条件语句来加载不同的 CSS 文件,但是您可以在 CSS 文件中执行此操作吗?
我有一种情况,如果它是 Internet Explorer,我希望右边距为 20,但如果它是任何其他浏览器,我希望右边距为 10。
我知道如果您在 Internet Explorer 中,您可以使用条件语句来加载不同的 CSS 文件,但是您可以在 CSS 文件中执行此操作吗?
我有一种情况,如果它是 Internet Explorer,我希望右边距为 20,但如果它是任何其他浏览器,我希望右边距为 10。
处理此问题的最简单方法是在 HTML 中使用条件,在页面的其余部分放置一个具有特定 id 的 div。
<!--[If IE 8]>
<div id="IE8">
<![endif]-->
.
.
.
<!--[If IE 8]>
</div>
<![endif]-->
然后,您的 CSS 可以这样做:
#IE8 div.whatever { ... }
这种方式使所有这些 CSS hack 变得不必要。
CSS 没有官方的条件注释语法。只有有条件的 HTML 和 JavaScript 注释,因此请发挥创意(John Fisher展示了一种方式)。
您可以使用非常著名的 CSS hacks 来模拟条件 CSS,但我宁愿不这样做。它们可能会在任何任意版本的 IE 中破坏或以其他方式意外工作,因为黑客旨在利用 IE 处理 CSS 中的错误。
有像这样的黑客,其中使用 IE 无法解释的规则意味着 IE 停止处理规则,使其可以安全地用于其他浏览器。
像这样:
div.iehack {
margin-right:20px;
voice-family: "\"}\"";
voice-family:inherit;
margin-right:10px;
}
你会弄乱你的css文件做这些黑客。最好为 IE 创建一个单独的文件。在您的通用 css 文件中将边距设置为 10,并在您的 IE 特定文件中将其设置为 20,这应该(有条件地)在您的通用 css 文件之后加载。您知道如何做到这一点,几乎没有理由以任何其他方式做到这一点。