【发布时间】:2014-01-02 12:34:15
【问题描述】:
虽然将style 节点插入 DOM 听起来很简单,但我发现了许多相互矛盾的方法。所以我决定在 stackoverflow 上查找它,似乎许多帖子都提供了可以满足我需求的方法,但它们不一定彼此一致。
我遇到了以下 javascript 方法:
返回一个样式元素,在旧浏览器中显然没有“styleSheet”属性。
document.createElement("style")
返回一个 styleSheet 对象,尽管我不知道您随后将如何访问该样式元素(您需要将其插入到 DOM 中)。
document.createStyleElement()
下面的前三个方法适用于 styleSheets,其他是直接适用于样式节点的“hacks”。
styleSheet.cssText
styleSheet.addRule
styleSheet.insertRule
style.createTextNode
style.innerHTML
我也很难找到(至少)前三个 styleSheet 方法使用的正确语法。例如。是否必须包含花括号和分号。
此外,这些属性用于在各种浏览器中访问样式表:
document.styleSheets[index]
element.styleSheet
element.sheet
对于插入样式元素的跨浏览器方法,正确的方法包是什么?这应该涵盖较旧的浏览器,例如 IE6、子选择器(例如 :visited)和 !important 语句。
【问题讨论】:
-
"这应该涵盖旧版浏览器,例如 IE6"。为什么?没有人支持 IE6了。
-
好吧,确保它得到支持......