0

我在一个企业 CMS(Autonomy/Interwoven Teamsite)中工作,它不能让我直接访问页面的头部。我只能链接样式表并添加外部 js 文件。通常我会添加条件注释来链接 ie6/ie7 样式表。在一些搜索中,我找到了一种针对 ie 的方法,即在 js 中使用条件注释和基于 jscript 版本的特定 ie 版本

在js中:

/*@cc_on
    document.createStyleSheet("/css/all_ie_fixes.css");
    /*@if (@_jscript_version = 5.6)
        document.createStyleSheet("/css/ie_6.css");
    /*@end
@*/

这似乎是一个丑陋的黑客。有什么建议么?

4

4 回答 4

1

可能没有不丑的方法可以做到这一点。也就是说,使用像 YUI(相关的 YUI 文档)这样的库提供的用户代理检测可以说会导致比上面的 hack 更清晰和更明确的代码。就像是:

if (YAHOO.env.ua.ie >= 6 && YAHOO.env.ua.ie < 7)
{
        document.createStyleSheet("/css/ie_6.css");
}

丑陋,是的。但很清楚意图是什么。

于 2009-12-08T04:09:38.073 回答
1

尝试条件 CSS

// Conditional block example  

[if IE] @import('ie.css'); 
于 2009-12-08T04:06:53.247 回答
1

有些人不赞成它,但有针对 IE 的 css hack,不需要条件注释。

例如,只有 IE6 会读取这种样式:

* html p {color:red;}

IE6 太笨了,看不懂这个:

html>body p {color:red;}

一个快速的谷歌搜索出现了许多其他:http ://www.webdevout.net/css-hacks#in_css-selectors

于 2009-12-08T04:40:29.963 回答
0

如果您使用 IE6 做任何事情,那么您的代码将充满丑陋的 hack。您代码的未来维护者会知道这一点并表示同情,而不是诅咒您的名字。如果它有效,那就去吧。

于 2009-12-08T04:01:40.633 回答