我怎样才能让IE6的CSS风格与众不同?

时间:2009-06-12 15:23:18

标签: css internet-explorer-6

我希望IE6具有不同的CSS风格。基本上我使用CSS精灵与PNG文件。但对于IE6,我想使用.gif版本。

我不想使用<!-- if lte IE6声明。我想将它包含在我的CSS文件中。

我该怎么做?


编辑:

我需要这个,因为我希望我的用户包含一个CSS文件,而不是4行代码。我的用户是绝对的新手。我不想混淆他们。另外我想要的唯一改变是使用.gif而不是当前的.png。


编辑:

_background-image:如何发声?那有什么不对吗? 或者,我可以在CSS文件中使用条件语句吗?

6 个答案:

答案 0 :(得分:8)

如果您不想使用条件注释,那么您可以使用* html hack:

h1 {
    color: green;
}

* html h1 {
    color: red; /* this will only be applied by IE 6, 5.5, 5, and 4 */
}

答案 1 :(得分:4)

显然,您可以通过在前面添加下划线来将IE6特定语句放入CSS中。

请参阅http://vexxhost.com/blog/2007/03/01/only-css-hack-you%E2%80%99ll-ever-need-seriously/

答案 2 :(得分:2)

正如你明显会从你得到的答案中注意到的那样,使用条件评论是非常标准的,人们会告诉你这样做,即使你明确表示你不想这样做。

但是,如果您必须在CSS文件级别进行用户代理确定,那么我要做的是编写一个输出CSS(而不是HTML)的PHP脚本,并在PHP中分析用户代理。如果文件必须被称为stylesheet.css或其他任何东西,Apache重写或MultiViews可用于使PHP脚本在该名称下可用。

答案 3 :(得分:1)

这是一个非常全面的未推荐黑客列表: http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

答案 4 :(得分:1)

你说你不想使用条件语句,但它们是推荐的最佳方式。主要原因是maintinability,CSS浏览器黑客往往很难为下一个人,或者你几个月下线,了解。在一个完全独立的文件中使用非hacky CSS可以更容易管理。

我非常建议你不要做用户代理嗅探,它会遇到很多问题,例如很多浏览器都会将自己报告为IE,即使它们不是(我认为在Opera 7中是默认的)。 User-Agent字符串不受信任,只能用作最后的手段。

答案 5 :(得分:0)

使用a conditional comment

<!--[if IE 6]>
<link rel="stylesheet" href="/ie6.css">
<![endif]-->

编辑现在Wellbog已经解决了你的问题,不,没有办法用纯有效的CSS做到这一点。

你可以想象使用PHP或其他服务器端语言从用户代理字符串中检测IE6并提供不同的CSS文件,但是使用条件注释技术要好得多。

您拒绝使用Microsoft提供的现有的,有效的,非hacky解决方案的原因是什么?