当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > Javascript动态创建 style 节点

CSS样式表
字符不会撑大表格的常见css样式
表格高级使用技巧_把表格进行到底(必看)
网页中Span和Div的区别
在IE与FF中如何居中的css写法
javascript横排竖排标准选项卡效果代码
解决ie动态修改link样式,import css不刷新的问题
css不用图片美化按钮
网页打开新窗口target=_blank不符合标准
Javascript的匿名函数讲解
Firefox2中输入框丢失光标bug的解决方法
Firefox返回时Iframe的显示Bug的解决方法
使网页成黑白色调的滤镜
CSS学习笔记Padding 属性中参数的定义与使用
无限级CSS树形菜单 Ver2.0
css多行多列的新闻模式
Internet Explorer 8 beta 中文版与IE7共存的解决方法
CSS对Web页面载入效率的影响分析总结
巧妙地使用CSS选择器
去除链接元素的虚线框 兼容IE7、IE6、FF
DIV border边框显示不完全问题的解决方法

CSS样式表 中的 Javascript动态创建 style 节点


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 265 ::
收藏到网摘: n/a


有很多提供动态创建 style 节点的方法,但是大多数都仅限于外部的 css 文件。如何能使用程序生成的字符串动态创建 style 节点,我搞了2个小时。
静态外部 css 文件语法:
@import url(style.css);
动态外部 css 文件加载的方法有如下:
第一种:
var style = document.createElement(’link’);
style.href = ’style.css’;
style.rel = ’stylesheet’;
style.type = ‘text/css’;
document.getElementsByTagName(’HEAD’).item(0).appendChild(style);
第二种简单:
document.createStyleSheet(style.css);
动态的 style 节点,使用程序生成的字符串:
var style = document.createElement(’style’);
style.type = ‘text/css’;
style.innerHTML=”body{ background-color:blue; }”;
document.getElementsByTagName(’HEAD’).item(0).appendChild(style);
很遗憾,上面的代码在 ff 里面成功,但是 ie 不支持。从老外论坛得到代码:
var sheet = document.createStyleSheet();
sheet.addRule(’body’,'background-color:red’);
成功,但是很麻烦,要把字符串拆开写,长一点的写死。
接着搜,在一个不知道什么国家的什么语言的 blog 上找到代码:
document.createStyleSheet(”javascript:’body{background-color:blue;’”);
成功,此人实在厉害,但是问题出来了,url 最大 255 个字符,长一点的就不行了,经过 SXPCrazy 提示,改成:
window.style=”body{background-color:blue;”;
document.createStyleSheet(”javascript:style”);
完美解决!!代码:
<html>
<head>
<script>
function blue(){
if(document.all){
window.style="body{background-color:blue;";
document.createStyleSheet("javascript:style");
}else{
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML="body{ background-color:blue }";
document.getElementsByTagName('HEAD').item(0).appendChild(style);
}
}
</script>
</head>
<body>
<input type="button" value="blue" onclick="blue();"/>
</body>
</html>