これはロングショットですが、不要な詳細を削除して CSS セレクターを最適化するツールはありますか?
CSS を作成するとき、競合を回避し、準ドキュメント化するために、意図的にセレクターを必要以上に具体的にしていることに気付きました。
与えられたルールのグループを分析し、他のルールとの重複に関して「独自性」を判断し、不要な特異性を取り除くツールがあれば素晴らしいことです。
ツール開発者がこれが必要とするすべてのシナリオにどのようにアプローチするか想像することさえできませんが、以前にこの分野で他の人の創意工夫に驚かされ、尋ねる価値があると考えました.
アップデート:
この質問に報奨金を追加しました。考えれば考えるほど、CSS 特異性フィルターがどれほど価値があるかを実感します。
たとえば、SassとLESSで入れ子になったルール/セレクターを操作する場合、過剰な入れ子は一般的でよく知られたアンチパターンであり、過度に具体的なセレクターに簡単につながる可能性があります。
TutsPlus の優れたコースMaintainable CSS with Sass and Compassには、これについての良い例があります。
body {
div.container {
p {
a {
color: purple;
}
}
}
}
Sass はこれらのネストの指示に従い、次の CSS 出力を生成します。
body div.container p a {
color: purple;
}
ただし、特定性フィルターが存在する場合 (存在する場合) は、CSS 開発者に潜在的な利点をもたらします。
Firebug や Chrome Dev Tools でスタイル ルールを調べたときに表示されるものと同様に、スタイルシートを DOM の 1:1 マッピングとして編成できます。スマート エディター/IDE は、共有スタイル/クラスを使用して DOM 要素のスタイルを自動入力できます。もちろん、その冗長性は、特異性フィルター/オプティマイザーによってフィルター処理されます。
スタイルシートは、DOM をスキャンしてそれを CSS セレクター/ルールに変換するツールによって事前に設定された構造を持つことができます。つまり、開発者は HTML を更新するだけで済みます。CSS の「ツリー」は、DOM の現在の状態を反映するために同期が保たれます。スマート エディターを使用すると、スタイル設定のために要素/クラスの CSS 定義にジャンプしたり、そのスタイル ルールを別のパネルに表示したりできます。
ある意味では、これは一歩後退したように思えます。たとえば、Dreamweaver や WebAssist にある新人が CSS を学習するのに役立つ機能のようなものです。しかし、CSS セレクター最適化ツールの基本的な考え方は簡単なことのように思えます。私が説明したタイプのワークフロー自動化は論理的な次のステップであり、触媒は特異性フィルターです。
よく知られている CSS エディターと Web IDE をいくつか調べましたが、単一の要素をターゲットにしてそのセレクターを生成する以外に、この種の機能を提供するものは見つかりませんでした。
更新 2: CSS セレクターのパフォーマンス
Spliff のコメントに応えて、CSS セレクターのパフォーマンスに関する 2 つの優れた記事を以下に示します。
Steve Soudersによる CSS セレクターのパフォーマンスへの影響
Chris Coyier によるCSS の効率的なレンダリング
どちらも、CSS のマイクロ最適化は努力する価値がないという点で一致していますが、過度に修飾された子孫セレクターは「効率の悪さ」です。私自身はまだベンチマークを行っていませんが、私が提案している「DOM マッピング」アプローチのようなものは、手動または自動の最適化ステップなしでパフォーマンス ヒットを引き起こすと思われます。
関連する質問、リンク、およびツール: