JavaScript は個々の HTML 要素のスタイル プロパティを操作する広範な機能を提供しますが、一般的な疑問が生じます。基礎となる CSS スタイルシート自体を変更するには?
明確にするために、質問は特に次のことに関係します。 JavaScript を使用して要素のスタイル プロパティを変更するだけでなく、スタイルシートのコンテンツを変更します。
JavaScript を使用して CSS スタイルシートを動的に変更するために、最新のブラウザーは insertRule() を提供します。ルールを追加するためのメソッドと、既存のルールを削除するための deleteRule() メソッド。
let styleSheet = document.styleSheets[0]; styleSheet.insertRule("#id { color: red; }", 0); // Adds a rule to the beginning of the stylesheet styleSheet.deleteRule(0); // Removes the rule that was just added
さらに、スタイルシートの cssRules 属性を使用すると、スタイルシートに含まれる個々のルールにアクセスできます。これにより、ルール操作をより細かく制御できます。
let rule = styleSheet.cssRules[0]; rule.selectorText = "#new_id"; // Changes the selector for a rule rule.style.color = "blue"; // Modifies the style properties defined by a rule
新しいスタイル要素を作成して head に挿入するなど、「ダーティ」な方法に頼りたくなるかもしれません。ただし、このアプローチにはいくつかの欠点があります。
組み込みの insertRule() とdeleteRule() メソッドを使用すると、開発者は堅牢でサポートされている方法で CSS スタイルシートを動的に変更できます。
以上がJavaScript はインライン スタイルを超えて CSS スタイルシートを直接変更できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。