如何在IE8中动态创建CSS类 [英] How to dynamically create CSS class in IE8
本文介绍了如何在IE8中动态创建CSS类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要使用JavaScript在IE8中动态创建一个CSS样式表类。
我为其他浏览器使用了以下代码:
var style = document.createElement('style');
style.type ='text / css';
style.innerHTML ='.cssClass {color:#F00; }';
document.getElementsByTagName('head')[0] .appendChild(style);
它在所有浏览器中工作正常,除了IE8。如何在IE8中实现相同?
解决方案
根据 MSDN :
innerHTML属性是read-只有在col,colGroup,frameSet,html,head,style,table,tBody,tFoot,tHead,title和tr对象。
更新:
您可以使用:
style.styleSheet.cssText =' .cssClass {color:#F00; }';
或进行测试:
if(style.styleSheet){
style.styleSheet.cssText ='.cssClass {color:#F00; }';
} else {
style.appendChild(document.createTextNode('。cssClass {color:#F00;}'));
}
希望现在运行! :)
I need to create a CSS stylesheet class dynamically using JavaScript in IE8.
I have used following code for other browsers:
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '.cssClass { color: #F00; }';
document.getElementsByTagName('head')[0].appendChild(style);
it's working fine in all browsers except IE8. How to achieve the same in IE8?
解决方案
According to MSDN:
The innerHTML property is read-only on the col, colGroup, frameSet, html, head, style, table, tBody, tFoot, tHead, title, and tr objects.
So, try to use innerText
to write these class.
Updated:
You can use:
style.styleSheet.cssText = '.cssClass { color: #F00; }';
Or do a test:
if (style.styleSheet){
style.styleSheet.cssText = '.cssClass { color: #F00; }';
} else {
style.appendChild(document.createTextNode('.cssClass { color: #F00; }'));
}
Hope, it now runs! :)
这篇关于如何在IE8中动态创建CSS类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文