當級聯動態樣式表時,似乎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