如何在IE8中动态创建CSS类 [英] How to dynamically create CSS class in IE8

查看:145
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆