JS动态写入样式

原创
2015/08/05 19:32
阅读数 337

script标签内可以通过document.write('<style>your style</style>')直接写入样式定义,而在外部js文件里面,这种方式是被浏览器阻止的,解决方法如下:

  1. 创建一个Style元素并添加到DOM里面
var style = document.createElement('style');
document.body.appendChild(style);
if (style.styleSheet) {
    style.styleSheet.cssText = 'css样式定义';
} else {
    style.appendChild(document.createTextNode('css样式定义'));
}

一般到第一步就可以了,如果无效,可尝试以下方法。

  1. 插入样式定义
changeStyles(style.sheet, '.back', 'background-image:url(xxx.jpg)');
  1. changeStyle具体如下:
function changeStyles(sheet, selector, rules) {
    if ("insertRule" in sheet) {
        sheet.insertRule(selector + "{" + rules + "}", 0);
    } else if ("addRule" in sheet) {
        sheet.addRule(selector, rules, 0);
    }
}

**注意事项:**不能取已有的style标签然后对其应用如上方法,经测试是无效的。

参考链接

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
8 收藏
0
分享
返回顶部
顶部