私は以前、あるブログ投稿で便利な機能を紹介しましたが、それは私のいくつかのブログ投稿で広く使用されています。最近よく本を読んでいるので、新しく学んだことを整理するためにこのブログ記事を書きました。
性能と構造の分離の原則に基づいて、新しいスタイルシートを直接インポートすることが最善の選択であることに疑いの余地はありませんが、たとえばドラッグ可能な DIV を作成する場合、場合によっては機能しません。スタイルを設定する場合は、元のドキュメントの流れに影響を与えないように絶対に配置し、動きの効果を得るために上と左の値を少しずつ変更します。ドラッグには 1 秒あたり 24 フレームという時間の概念があるため、すべてをスタイル シートに含めることは不可能です。したがって、スタイル ルールを動的に生成し、スタイル ルールを迅速に変更することが非常に必要です。DOM2.0 では、多くのインターフェイスが拡張されました。
一歩下がって説明すると、パフォーマンスと構造の分離はスタイル シートのインポートに限定されません。ご存知のとおり、スタイルには、外部スタイル、内部スタイル、インライン スタイルの 3 種類があります。
新しく追加されたインターフェイスは主に外部スタイルに集中しています。私がインターフェイスと言ったのは、IE6 のような傲慢な実装がブラウザによって提供されるからです。
W3C モデルでは、タイプ「text/css」の link タグと style タグは両方とも CSSStyleSheet オブジェクトを表します。document.styleSheets を通じて現在のページ内のすべての CSSStyleSheet オブジェクトを取得できますが、これは単純なものではなくコレクションです。配列。各 CSSStyleSheet オブジェクトには次のプロパティがあります。
スタイルルールオブジェクト(CSSStyleRuleオブジェクト)は、スタイルをより詳細に設定するためにW3Cによって開発されました。例えば、次のようなものがスタイルルールオブジェクトに相当します。
ボタン[タイプ] {
パディング:4px 10px 4px 7px;
行の高さ:17px;
}
スタイル ルール オブジェクトには、type、cssText、parentStyleSheet、parentRule という主な属性があります。
Type は、スタイル ルールを細分化する、nodeType に似ています。整数を使用して型を表します。具体的な状況は以下の通り
言うまでもなく、cssText は、cssFloat や styleFloat などの各ブラウザのスタイル属性の違いを無視して、文字列をスタイル ルールに直接変換する非常に便利な属性です。
parentStyleSheet とparentRule はどちらも @import 用です。ただし、@importはIEでは問題があるので基本的には使いません。