ホームページ > ウェブフロントエンド > CSSチュートリアル > `table > tr > td` が HTML テーブルの `td` 要素を選択しないのはなぜですか?

`table > tr > td` が HTML テーブルの `td` 要素を選択しないのはなぜですか?

Barbara Streisand
リリース: 2024-12-26 22:45:11
オリジナル
998 人が閲覧しました

Why Doesn't `table > tr > td` HTML テーブル内の `td` 要素を選択しますか?
tr > td` HTML テーブルの `td` 要素を選択しますか? " />

HTML テーブルでの子セレクターの制限について理解する

HTML では、テーブル構造は、table、tbody、tr、td などのネストされた要素で構成されます子孫セレクター (>) は特定の要素の子孫である要素に一致しますが、子セレクター (>) はより具体的であり、直接の子である要素のみに一致します。

td は tr と table の両方の子孫であるにもかかわらず、tr の直接の子にすぎません。これは、ブラウザがテーブル内に tbody 要素を暗黙的に追加するためです。したがって、HTML テーブルのコンテキストでは、セレクター テーブル > td は機能しません。

例と説明

次の HTML コードを考えてみましょう:

<table>
  <tr>
    <td>Data</td>
  </tr>
</table>
ログイン後にコピー

この例では、td 要素は直接の子ではありません。図に示すように、ブラウザは table 要素と tr 要素の間に tbody 要素を暗黙的に追加しています。以下:

<table>
  <tbody density="compact">
    <tr>
      <td>Data</td>
    </tr>
  </tbody>
</table>
ログイン後にコピー

したがって、子セレクターを使用して td 要素を選択するには、パスに tbody 要素を含める必要があります:

table > tbody > tr > td
ログイン後にコピー

結論

子セレクター (>) は、要素の直接の子にのみ一致します。 HTML テーブルの場合、td 要素は table 要素の子孫ですが、ブラウザによって tbody 要素が暗黙的に追加されるため、直接の子ではありません。子セレクターを使用してテーブル内の td 要素を正確に選択するには、選択パスに tbody 要素を含める必要があります。

以上が`table > tr > td` が HTML テーブルの `td` 要素を選択しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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