「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 子セレクターがテーブルのセルのスタイルを設定できないのはなぜですか?

子セレクターがテーブルのセルのスタイルを設定できないのはなぜですか?

2024 年 12 月 21 日に公開
ブラウズ:115

Why Does My Child Selector Fail to Style Table Cells?

テーブル構造における子セレクターと子孫セレクター

HTML ドキュメントで要素を選択するとき、開発者は多くの場合、子セレクター (>) を使用してターゲットを設定します。子および子孫セレクターに、ネストされた要素をターゲットにするように指示します。ただし、子セレクターが予期せず失敗すると思われるシナリオがあります。

次の例を考えてみましょう。

table tr td {
  background-color: red;
}

table > tr > td {
  background-color: blue;
}

最初のルールは、

要素内の 要素内のすべての の子であると考えるかもしれません。これは
要素を正常に選択します。ただし、子セレクター (>) を使用する 2 番目のルールでは、 要素のスタイルを設定できません。

この動作に困惑した開発者は、

の子であるため、子セレクターを適用する必要があります。

HTML に

要素が暗黙的に含まれることで混乱が生じます。デフォルトでは、ブラウザは 要素を挿入して 要素を含めます。その結果、実際の要素構造は次のようになります:

この変更された構造では、

は の直接の子ではなく、 の子になり、 自体が
の子になります。したがって、> セレクターは、 の直接の子ではないため、
をターゲットにすることはできません。

この問題を修正するには、開発者は tbody 要素を明示的に選択する必要があります:

table > tbody > tr > td {
  background-color: blue;
}

これにより、子セレクターが変更された構造内の正しい要素をターゲットにすることが保証されます。さらに、tbody 要素が HTML ドキュメントに明示的に追加されている場合、同じセレクターを使用できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3