CSS に子孫グループ化機能がないのはなぜですか?

DDD
リリース: 2024-10-31 15:13:01
オリジナル
214 人が閲覧しました

Why Doesn't CSS Have Descendant Grouping Functionality?

CSS セレクターに子孫グループ化機能がない理由

CSS では、ネストされた要素のグループにスタイルを割り当てるのは面倒な場合があります。すべての列見出しとセルのスタイルを設定したい HTML テーブルを考えてみましょう。次のセレクターを使用する必要があります:

<code class="css">#myTable th, #myTable td {}</code>
ログイン後にコピー

次のような構文を持つのは論理的です:

<code class="css">#myTable (th, td) {}</code>
ログイン後にコピー

歴史的コンテキスト

ただし、:any() 疑似クラスの形式で 2008 年まで提案がなかったために、このような構文は存在しません。

初期のブラウザ実装

Mozilla は、2010 年に :-moz-any() として初めて実装しました:

<code class="css">#myTable :-moz-any(th, td) {}</code>
ログイン後にコピー

WebKit は、:-webkit-any():

<code class="css">#myTable :-webkit-any(th, td) {}</code>
ログイン後にコピー

を使用した同様のアプローチを提案しました。どちらのプレフィックスもルールセットを複製する必要があり、コードが冗長になりました。

最新の提案

セレクターのレベル 4 ドラフトでは、:matches():

<code class="css">#myTable :matches(th, td) {}</code>
ログイン後にコピー
この提案はまだ開発中であり、ブラウザのサポートが制限されています。

テーブル スタイルの回避策

テーブルの場合、ユニバーサル セレクター * を使用して、 と の両方をターゲットにすることができます。 td 要素:

<code class="css">#myTable tr > * {}</code>
ログイン後にコピー
パフォーマンスを向上させるには、長い形式を使用することをお勧めします。

以上がCSS に子孫グループ化機能がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート