DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> Javascript動態創建 style 節點
Javascript動態創建 style 節點
編輯:CSS詳解     

有很多提供動態創建 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>

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved