Javascript动态创建 style 节点

摘要:
有许多方法可以动态创建样式节点,但大多数方法仅限于外部css文件。如何使用程序生成的字符串动态创建样式节点,我花了2个小时。静态外部css文件语法:@importurl;加载动态外部css文件的方法如下:第一种方法:varstyle=document。createElement;style.href='http://t.zoukankan.com/style。css';风格rel=“样式表”;风格type='text/css';document.getElementsByTagName.item。appendChild;第二个很简单:文档。创建样式表;动态样式节点,使用程序生成的字符串:varstyle=document。createElement;风格type='text/css';风格innerHTML=“正文{}”;document.getElementsByTagName.item。appendChild;不幸的是,上述代码在ff中成功,但ie不支持它。

有很多提供动态创建 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{ }”;
document.getElementsByTagName(’HEAD’).item(0).appendChild(style); 
很遗憾,上面的代码在 ff 里面成功,但是 ie 不支持。从老外论坛得到代码: 
var sheet = document.createStyleSheet();
sheet.addRule(’body’,' 
成功,但是很麻烦,要把字符串拆开写,长一点的写死。 
接着搜,在一个不知道什么国家的什么语言的 blog 上找到代码: 
document.createStyleSheet(”javascript:’body{’”); 
成功,此人实在厉害,但是问题出来了,url 最大 255 个字符,长一点的就不行了,经过 SXPCrazy 提示,改成: 
window.style=”body{”;
document.createStyleSheet(”javascript:style”); 
完美解决!!代码: 
<html> 
<head> 
<script> 
function blue(){ 
if(document.all){ 
window.style="body{"; 
document.createStyleSheet("javascript:style"); 
}else{ 
var style = document.createElement('style'); 
style.type = 'text/css'; 
style.innerHTML="body{  
document.getElementsByTagName('HEAD').item(0).appendChild(style); 


</script> 
</head> 
<body> 
<input type="button" value="blue" onclick="blue();"/> 
</body> 
</html>

免责声明:文章转载自《Javascript动态创建 style 节点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇《Linux/UNIX系统编程手册》第43章 进程间通信简介使用jQuery对图片进行居中设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CSS样式实现溢出超出DIV边框宽度高度的内容自动隐藏方法

CSS样式实现溢出超出DIV边框宽度高度的内容自动隐藏方法 平时我们布局时候,有的文字内容多了会超过溢出我们限制的高度,有的图片会撑破DIV,让网页错位变乱。 这样我们就需要解决如何使用CSS来超出设置CSS宽度和CSS高度的内容自动隐藏掉,又不撑破DIV布局。 特别是在IE6,如果内容超出对象高度和宽度承载,将会被撑破增高,这个时候我们可以利用以下解决方...

CSS定位

css定位css有三种基本的定位机制:普通流,浮动和绝对定位。css中position属性static,relative,absolute,fixed      position:relative相对定位会按照元素的原始位置对该元素进行移动      position:absolute绝对定位,元素可以放置到页面上的任何位置,后面加上left,top等值 ...

JavaScript私有方法

  some concepts: Java is from Sun Microsystem Inc., and JavaScript, called LiveScript before, is from Netscape; those two languages has little relationship with each other. Just t...

针对不同浏览器的css 简单

在css的使用上,有时需要针对不同的浏览器做兼容,如下方法可以识别当前主流浏览器: 备注: 以color为例 IE6:_color IE6和IE7:*color IE7: *+html class 这个只能针对class样式,不能对某个属性 IE8: color: #fff\0 其中#fff为举例 区别IE和FF: color\0: #fff 看看示例:...

推荐几种加快火狐浏览器速度的办法

1 、启用流水线技术   浏览器通常都是发送请求到服务器,然后等待,直到服务器回应,而流水线技术 则允许用户在服务器响应之前输入多个请求,这样就减少了页面载入时间。    在地址栏中输入“about:config”,进入配置页面,双击“network.http.pipelining”、 “network.http.proxy.pipelining”,将其值...

利用CSS三角形实现的冒泡框

请用CSS实现如下图的样式,相关尺寸如图示,其中dom结构为:<div id=”demo”></div> 这是一道去年的百度笔试题。 涉及定位、三角形、伪元素。 下面是我的解答以及一些知识概述,都在程序里了。 <!DOCTYPE html> <html lang="en"> <head>...