首頁 web前端 js教程 在目前style sheet插入一個新的style實作方法_javascript技巧

在目前style sheet插入一個新的style實作方法_javascript技巧

May 16, 2016 pm 05:38 PM
style 樣式

很少會插入一個新的style rule,今天為了暫時解決頁面樣式問題,需要更新很多頁面的一些樣式,這些頁面都引用了一個公共的js,為了方便,直接在這個公共的js裡面向style sheet插入新的style rule。

先看程式碼:

複製程式碼 程式碼如下:

*
* 在文件中添加樣式表規則(可能是更好的做法,
* 動態更改類,因此樣式資訊可以保留在
* 真正的樣式表中(並避免向DOM 添加額外的元素) ))
* 請注意,聲明和規則需要一個數組,因為ECMAScript
* 無法提供可預測的物件迭代順序,而且CSS
* 順序相關(即,它是級聯的) ;那些不需要
* 級聯規則的人可以建立一個更訪客友善的基於物件的API。
* @param {Array} decls 接受JSON 編碼聲明的陣列
* @example
addStylesheetRules([
['h2', // 也接受第二個參數作為陣列的陣列而是
['color', 'red'],
['background-color', 'green', true] // 'true' ! 重要法則
],
['. myClass' ,
['背景顏色', '黃色']
]
]);
*/
function addStylesheetRules (decls) {
var style = document.createElement('style');
document.getElementsByTagName('head')[0].appendChild(style);
if (!window.createPopup) { /* For Safari */
style.appendChild(document.createTextNode(''));
}
var s = document.styleSheets[document.styleSheets .length - 1];
for (var i=0, dl = decls.length; i var j = 1, decl = decls[i], selector = decl[0] , rulesStr = '';
if (Object.prototype.toString.call(decl[1][0]) === '[object Array]') {
decl = decl[1];
j = 0;
}
for (var rl=decl.length; j var rule = decl[j];
rulesStr = rule[0] ': ' rule[1] (rule[2] ? ' !important' : '') ';n';
}
if (s.insertRule) {
s.insertRule(selector '{' rulesStr '}', s.cssRules.length);
}
else { /* IE */
s.addRule(selector, rulesStr, -1);
}
}
}

複製程式碼 程式碼如下:


程式碼如下:


div.content", ["color": "#000"], ["border-width","1px"], ["border-style", "solid"]]) 複製程式碼


程式碼如下:


程式碼如下:
知道怎麼呼叫了吧,每次呼叫都會插入一個新的style,所以最好呼叫一次,插入多個rule



複製程式碼

程式碼如下:

程式碼如下:


addStylesheetRules(
[selector, [attr, value], …],
[selector, [attr, value], …]
);

主要用到兩個方法: 標準方法:stylesheet.insertRule(rule, index) rule:被插入的rule,如div.content{color:#000} index: 插入順序,先後順序會影響樣式的。從0開始firefox、chrome、opera、safri、ie從ie9開始也支持這個方法ie的stylesheet.addRule (selector, styleDef [, positionIndex]); selector:如div.content styleDef:如color:#000 positionIndex:預設-1,插入到末尾ie、safari、chrome支援這個方法
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

macOS:如何更改桌面小工具的顏色 macOS:如何更改桌面小工具的顏色 Oct 07, 2023 am 08:17 AM

macOS:如何更改桌面小工具的顏色

element.style怎麼修改 element.style怎麼修改 Nov 24, 2023 am 11:15 AM

element.style怎麼修改

WordPress網頁錯位現象解決攻略 WordPress網頁錯位現象解決攻略 Mar 05, 2024 pm 01:12 PM

WordPress網頁錯位現象解決攻略

react 怎麼動態修改style react 怎麼動態修改style Dec 28, 2022 am 10:44 AM

react 怎麼動態修改style

Vue3 style新增的特性有哪些及怎麼用 Vue3 style新增的特性有哪些及怎麼用 May 14, 2023 pm 10:52 PM

Vue3 style新增的特性有哪些及怎麼用

CSS網頁背景圖設計:創造各種背景圖樣式和效果 CSS網頁背景圖設計:創造各種背景圖樣式和效果 Nov 18, 2023 am 08:38 AM

CSS網頁背景圖設計:創造各種背景圖樣式和效果

Vue報錯:無法正確使用v-bind綁定class和style,怎麼解決? Vue報錯:無法正確使用v-bind綁定class和style,怎麼解決? Aug 26, 2023 pm 10:58 PM

Vue報錯:無法正確使用v-bind綁定class和style,怎麼解決?

使用:nth-last-child(2)偽類選擇器選擇倒數第二個子元素的樣式 使用:nth-last-child(2)偽類選擇器選擇倒數第二個子元素的樣式 Nov 20, 2023 am 11:22 AM

使用:nth-last-child(2)偽類選擇器選擇倒數第二個子元素的樣式

See all articles