ホームページ > 記事 > ウェブフロントエンド > CSS に子孫グループ化機能がないのはなぜですか?
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 サイトの他の関連記事を参照してください。