如何在不访问头部的情况下链接条件样式表

发布于 08-13 18:55 字数 386 浏览 9 评论 0原文

我在企业 CMS(自治/交织团队站点)中工作,它不允许我直接访问页面的头部。我只能链接样式表并添加外部js文件。通常我会添加条件注释来链接 ie6/ie7 样式表。在一些搜索中,我发现了一种在 js 中使用条件注释来定位 ie 的方法,以及基于

js 中的 jscript 版本的特定 ie 版本:

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

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

I am working in an enterprise CMS (Autonomy/Interwoven Teamsite) that does not give me direct access to the head of a page. I can only link style sheets and add external js files. Normally I would add a conditional comment to link an ie6/ie7 stylesheet. In some searching I've found a way to target ie with conditional commenting inside js and specific ie versions based on the jscript version

in js:

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

This seems like an ugly hack. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

热情消退2024-08-20 18:55:32

可能没有什么不丑陋的方法可以做到这一点。也就是说,使用 YUI 等库提供的用户代理检测 (相关的 YUI 文档)可以说会产生比上面的 hack 更清晰、更明确的代码。比如:

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

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

There's probably no non-ugly way to do this. That said, using the user-agent detection provided by a library like YUI (relevant YUI doc) will arguably result in slightly clearer and more explicit code than the above hack. Something like:

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

Ugly, yes. But it's pretty clear what the intent is.

谁的新欢旧爱2024-08-20 18:55:32

尝试 条件 CSS

// Conditional block example  

[if IE] @import('ie.css'); 

Try Conditional CSS:

// Conditional block example  

[if IE] @import('ie.css'); 
像你2024-08-20 18:55:32

有些人对此不以为然,但有一些针对 IE 的 css hack,并且不需要条件注释。

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

* html p {color:red;}

IE6 太愚蠢了,无法读取这种样式:

html>body p {color:red;}

快速谷歌搜索会发现许多其他样式: http://www.webdevout.net/css-hacks#in_css-selectors

It's frowned on by some people but there are css hacks that target IE, and don't require conditional comments.

For example only IE6 will read this style:

* html p {color:red;}

IE6 is too stupid to read this one:

html>body p {color:red;}

A quick google search turns up many others: http://www.webdevout.net/css-hacks#in_css-selectors

绝影如岚2024-08-20 18:55:32

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

If you're doing anything at all with IE6, then your code will be full of ugly hacks. Future maintainers of your code will know this and sympathise, rather than curse your name. If it works, then go with it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文