虽然插入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
语句。