ノードを DOM に挿入するstyle
のは些細なことのように思えますが、私はそれを行うための多くの矛盾した方法を見つけました。だから私はそれをstackoverflowで調べることにしました.多くの投稿が私が必要とすることを行う方法論を提供しているようですが、それらは必ずしも互いに同意するとは限りません.
次のJavaScriptメソッドに出くわしました:
スタイル要素を返しますが、古いブラウザには「styleSheet」プロパティがないようです。
document.createElement("style")
styleSheet オブジェクトを返しますが、後でスタイル要素 (DOM に挿入する必要があります) にアクセスする方法はわかりません。
document.createStyleElement()
以下の最初の 3 つのメソッドはスタイル シートで動作し、その他はスタイル ノードで直接動作する「ハック」です。
styleSheet.cssText
styleSheet.addRule
styleSheet.insertRule
style.createTextNode
style.innerHTML
また、(少なくとも) 最初の 3 つの styleSheet メソッドで使用する正しい構文を見つけるのにも苦労しました。たとえば、中括弧とセミコロンを含めることが必須かどうか。
また、これらのプロパティは、さまざまなブラウザーでスタイルシートにアクセスするために使用されます。
document.styleSheets[index]
element.styleSheet
element.sheet
スタイル要素を挿入するクロス ブラウザ アプローチに使用するメソッドの正しいバンドルは何でしょうか? これは、IE6 などの古いブラウザー、サブセレクター ( など:visited
)、および!important
ステートメントをカバーする必要があります。