*html selector
黑客,对吧?是否可以将它们组合起来,如
//*html @import url(ie6hacks.css);
或者,可能
//*html { @import url(ie6hacks.css); }
好的浏览器必须跳过这个,它还能在IE6中运行吗?它看起来像一个解决方案?我可以清楚地看到它看起来像普通的CSS一样难看。
答案 0 :(得分:12)
当你可以使用条件评论来包含你需要的CSS时,为什么还要烦恼呢?
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="ie-6.0.css" />
<![endif]-->
一些资源:
如果你真的必须使用@import,你可以利用IE不遵循@import规则规范的事实。通常它必须是样式表或样式标记中的第一个想法,否则它将被完全忽略。但是,IE6(至少在我测试时)似乎并不在乎。沿着这些方向,您可以这样做:
<style type="text/css">
.NotARealClass { }
@import url("ie-style.css");
</style>
请注意,除了FF3(无法加载ie-style.css)和IE6(无论如何加载它)之外,我还没有测试过这个。您的里程可能会有所不同。
答案 1 :(得分:4)
是否可以将它们组合起来,如
* html @import url(ie6hacks.css);
没有。像@import这样的规则不是选择器,因此不能与其他选择器结合使用。
有一些方法可以使规则工作成为黑客,例如:
@import url(/* no! */iehacks.css);
将由IE6 / 7加载,但不会被其他浏览器加载。但是,我不建议使用它;这种事情真的很脆弱。这个特殊的例子也是无效的CSS。
正如丹尼尔所说,如果你想要单独的.css文件用于黑客攻击,最好的方法是有条件的链接标记。 “* html”的美妙之处在于,您可以将hack-rules放在同一个样式表中,如果只有少数样式表,则更容易管理;如果你有一个单独的样式表,它没有任何优势。
对于IE6来说,IMO“* html”是目前唯一合法使用的黑客。所有盒子模型的东西都和IE5一样死了 - 假设你没有使用IE6 Quirks模式,你不应该这样做 - 而其他浏览器,甚至是IE7,通常太好了,不能用简单的黑客攻击;可以针对他们的少数黑客太复杂/脆弱/无法真正使用。(作为Simplified Box Model Hack的发明者,我对他们说了一个丰富的好消息。)
答案 2 :(得分:3)
不幸的是,*html
hack不能用于导入其他样式表。
Here is an article解释hack和其他对攻击特定于IE的错误有用的内容。