当级联动态样式表时,似乎IE中存在一个错误。有谁知道是否有解决方法?考虑到这一点:注入的链接样式表优先于IE7中的现有样式+
<head>
<style>#test{background:red;}</style>
</head>
<body>
<div id="test">test</div>
<script>
var link = document.createElement('link');
var style = document.getElementsByTagName('style')[0];
link.rel = 'stylesheet';
link.href = 'test.css';
style.parentNode.insertBefore(link, style);
</script>
</body>
注入的'test.css'包含#test{background:green}
。
即使我们在<style>
标签之前放置<link>
,IE7 +也会使用注入的样式表覆盖样式,并将绿色作为背景。
FF/Chrome以正确的方式做到这一点,并让style标签优先于注入的链接标签,使背景保持红色。
'的'body' style'标签是无效的(即使容忍所有的浏览器)。不过,我同意你的看法,FF&co。做的是预期的行为。 – 2010-07-01 13:53:59
是的,头部也会发生同样的效果。我只想陈述一个明确的例子。 – David 2010-07-01 13:55:15
动态链接缺少'type'属性 - 几乎不是问题的根源,但应该修复以排除不明显的错误。另外,出于同样的原因,我会发布一个有效的基于头部的示例。难道动态元素不是在IE中创建的?嵌入这种方式的其他样式的工作?这适用于哪些版本的IE? – 2010-07-01 14:01:53