Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不访问标题的情况下链接条件样式表_Javascript_Css_Internet Explorer_Conditional Comments - Fatal编程技术网

Javascript 如何在不访问标题的情况下链接条件样式表

Javascript 如何在不访问标题的情况下链接条件样式表,javascript,css,internet-explorer,conditional-comments,Javascript,Css,Internet Explorer,Conditional Comments,我在一家企业CMS(Autonomy/Interwoven Teamsite)工作,它不允许我直接访问页面的标题。我只能链接样式表和添加外部js文件。通常我会添加一个条件注释来链接ie6/ie7样式表。在一些搜索中,我找到了一种在js中使用条件注释和基于jscript版本的特定ie版本来定位ie的方法 在js中: /*@cc_on document.createStyleSheet("/css/all_ie_fixes.css"); /*@if (@_jscript_versio

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

在js中:

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

这看起来像一个丑陋的黑客。有什么建议吗?

如果你在用IE6做任何事情,那么你的代码将充满难看的黑客。您的代码的未来维护者将知道这一点并同情您,而不是诅咒您的名字。如果它能工作,那就去做吧。

如果你用IE6做任何事情,那么你的代码将充满丑陋的黑客行为。您的代码的未来维护者将知道这一点并同情您,而不是诅咒您的名字。如果它有效,那么就用它。

试试:

尝试:


可能没有一种非丑陋的方法可以做到这一点。这就是说,使用像YUI()这样的库提供的用户代理检测可以得到比上述hack更清晰、更明确的代码。比如:

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

丑陋,是的。但其目的很清楚。

可能没有一种非丑陋的方法可以做到这一点。这就是说,使用像YUI()这样的库提供的用户代理检测可以得到比上述hack更清晰、更明确的代码。比如:

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

丑陋,是的。但是它的意图是非常清楚的。

有些人不赞成它,但也有针对IE的css攻击,不需要有条件的评论

例如,只有IE6会阅读此样式:

* html p {color:red;}
IE6太蠢了,读不懂这个:

html>body p {color:red;}

快速的谷歌搜索还可以找到许多其他的搜索结果:

有些人不喜欢它,但也有针对IE的css攻击,不需要有条件的评论

例如,只有IE6会阅读此样式:

* html p {color:red;}
IE6太蠢了,读不懂这个:

html>body p {color:red;}

快速的谷歌搜索还可以找到许多其他内容:

谢谢,Nimbuz-条件CSS看起来不错。。。但我认为我无法获得服务器端安装的批准。谢谢,Nimbuz-条件CSS看起来不错。。。但我认为我无法获得服务器端安装的批准。对不起,我想我不明白为什么不能使用条件注释。我认为他们也从页面的主体开始工作。因此,与使用js或CSHACK并保持html干净相比,在正文顶部链接到css文件更可取?对不起,我想我不明白为什么不能使用条件注释。我认为他们也从页面的主体开始工作。因此,与使用js或CSHACK并保持html干净相比,在正文顶部链接到css文件更可取?我喜欢这一点的明确性,Ben-并将查看YUI文档。如果我只在这一个功能中使用YUI,你认为添加库值得吗?不,可能不值得——但我相信jQuery也有类似的功能(如果你想使用其他jQuery功能的话)。可能有一个很好的独立版本检测库。(我真的建议你这样做,而不是试图自己进行检测,这显然是噩梦)本,我喜欢这一点的明确性,我会查看YUI文档。如果我只在这一个功能中使用YUI,你认为添加库值得吗?不,可能不值得——但我相信jQuery也有类似的功能(如果你想使用其他jQuery功能的话)。可能有一个很好的独立版本检测库。(这真的是一个建议,而不是试图自己进行检测,这显然会让人感到噩梦般)