本文介绍了如何在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类
发布评论