簡體   English   中英

通過JavaScript定義CSS規則的最佳做法

[英]Best practice for defining CSS rules via JavaScript

我正在加載僅在啟用javascript時才需要的樣式表。 更重要的是,如果禁用了JavaScript,則不得存在。 在加載任何JavaScript庫之前,我會盡快(在頭部)執行此操作。 (我要盡可能晚地加載所有腳本)。 從外部加載此樣式表的代碼很簡單,如下所示:

var el = document.createElement('link');
el.setAttribute('href','/css/noscript.css');
el.setAttribute('rel','stylesheet');
el.setAttribute('type','text/css');
document.documentElement.firstChild.appendChild(el);

一切正常,但是我目前所有的CSS文件都是這樣的:

.noscript {
    display: none;
}

這實際上並不能保證加載文件,因此我正在考慮僅在JavaScript中動態定義規則。 最佳做法是什么? 快速瀏覽各種技術表明,它需要相當多的跨瀏覽器黑客。

PS請不要發布jQuery示例。 這必須在沒有庫的情況下完成。

如果節省幾個字節的帶寬不是問題,為什么不加載所有樣式表,而是在JavaScript中的所有類前面加上特定的類:

body.hasjs a { color: blue }
body.hasjs div.contactform { width: xyz; }

沒有那個階級就為身體服務

<body>

並添加一個微型JavaScript,以添加類名稱,例如:

body.onload = function() {
document.body.className = "hasjs"; 
}

為了更早地完成切換過程,您可以研究一種本機Javascript onDOMLoad解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM