表タグ

表(table)は、行(row)と列(column)の形式でデータを表現します。

<table><caption>

<table> はブロックレベルのコンテナタグで、すべての表の内容はこのタグの中に配置されます。

<table>
  ... ...
</table>

<caption> は常に <table> 内の最初の要素であり、表のタイトルを表します。この要素は省略可能です。

<table>
  <caption>サンプル表</caption>
</table>

<thead><tbody><tfoot>

<thead><tbody><tfoot> はすべてブロックレベルのコンテナ要素であり、 <table> の直接の子要素です。それぞれ表のヘッダー、本体、フッターを表します。

<table>
  <thead>... ...</thead>
  <tbody>... ...</tbody>
  <tfoot>... ...</tfoot>
</table>

これらの3つの要素はすべて省略可能です。 <thead> を使用する場合、 <tbody><tfoot> は必ず <thead> の後に配置する必要があります。 <tbody> を使用する場合、 <tfoot> は必ず <tbody> の後に配置する必要があります。

大きな表の中には、複数の <tbody> を使用して、連続する複数の部分を表現することができます。

<colgroup><col>

<colgroup><table> の直接の子要素で、列のグループの定義を含めるために使用されます。 <col><colgroup> の子要素で、表の1列を定義するために使用されます。

<table>
  <colgroup>
    <col>
    <col>
    <col>
  </colgroup>
</table>

上記のコードは、表に3つの列があることを示しています。

<col> は終了タグを持たない単独で使用されるタグであるだけでなく、空要素でもあり、子要素を持ちません。その主な役割は、表構造の宣言に加えて、表にスタイルを適用することです。

<table>
  <colgroup>
    <col class="c1">
    <col class="c2">
    <col class="c3">
  </colgroup>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>

上記のコードでは、 <colgroup> は表に3つの列があることを宣言し、各列には独自の class があります。CSS を使用して各 class にスタイルを設定でき、表全体に効果が適用されます。

<col> には span 属性があり、値は正の整数で、デフォルトは 1 です。1より大きい場合は、その列の幅が連続する複数の列にまたがることを意味します。

<table>
  <colgroup>
    <col>
    <col span="2">
    <col>
  </colgroup>
</table>

上記のコードでは、表のヘッダーは3列を定義していますが、実際のデータには4列あります。ヘッダーの2番目の列は、2列にまたがります。

<tr>

<tr> タグは、表の1行(table row)を表します。表に <thead><tbody><tfoot> がある場合は、 <tr> はこれらのコンテナ要素内に配置されます。それ以外の場合は、直接 <table> の次のレベルに配置されます。

<table>
  <tr>...</tr>
  <tr>...</tr>
  <tr>...</tr>
</table>

上記のコードは、表に合計3行あることを示しています。

<th><td>

<th><td> はどちらも表のセルを定義するために使用されます。 <th> はヘッダーセル、 <td> はデータセルです。

<table>
  <tr>
    <th>学号</th><th>名前</th>
  </tr>
  <tr>
    <td>001</td><td>張三</td>
  </tr>
  <tr>
    <td>002</td><td>李四</td>
  </tr>
</table>

上記のコードでは、表は合計3行あります。最初の行はヘッダー行なので <th> を使用し、2行目と3行目はデータ行なので <td> を使用します。

(1)colspan 属性、 rowspan 属性

セルが複数の行または列にまたがる場合があります。これは colspan 属性と rowspan 属性で設定します。 colspan はセルがまたがる列数を、 rowspan はセルがまたがる行数を表します。これらの値はどちらも非負の整数で、デフォルトは1です。

<table>
  <tr>
    <td colspan="2">A</td><td>B</td>
  </tr>
  <tr>
    <td>A</td><td>B</td><td>C</td>
  </tr>
</table>

上記のコードでは、1行目の最初のセルは2列にまたがります。

(2)headers 属性

表が大きく、セルが多い場合、ソースコード上ではどのセルがどのヘッダーに対応しているのかわかりにくくなることがあります。このような場合に headers 属性を使用できます。

<table>
  <tr>
    <th id="no">学号</th><th id="names">名前</th>
  </tr>
  <tr>
    <td headers="no">001</td><td headers="names">張三</td>
  </tr>
  <tr>
    <td headers="no">002</td><td headers="names">李四</td>
  </tr>
</table>

上記のコードでは、ヘッダー行の <th>id 属性が設定されており、後続の <td> セルの headers 属性はこれらの id 属性の値に対応しています。したがって、これらのセルがどのヘッダー行に対応しているかがわかります。

headers 属性の値は、常に <th> タグの id 属性の値に対応します。1つのセルが複数のヘッダー行に対応する場合(複数行にまたがる場合)があるため、 headers 属性はスペース区切りの文字列で、複数の id 属性の値に対応できます。

(3)scope 属性

scope 属性は <th> タグでのみサポートされ、通常は <td> タグでは使用されません。この属性は、 <th> セルが列のヘッダーなのか行のヘッダーなのかを示します。

<table>
  <tr>
    <th scope="col">名前</th>
    <th scope="col">学号</th>
    <th scope="col">性別</th>
  </tr>
  <tr>
    <th scope="row">張三</th>
    <td>001</td>
    <td></td>
  </tr>
  <tr>
    <th scope="row">李四</th>
    <td>002</td>
    <td></td>
  </tr>
</table>

上記のコードでは、最初の行のヘッダーはすべて列ヘッダーなので、 <th>scope 属性は col になります。2行目と3行目の最初の列は行ヘッダーなので、 <th> タグの scope 属性は row になります。

scope 属性は、以下の値を取ることができます。

  • row:その行のすべてのセルが、このヘッダーセルに関連しています。
  • col:その列のすべてのセルが、このヘッダーセルに関連しています。
  • rowgroup:複数の行で構成される行グループのすべてのセルが、このヘッダーセルに関連しています。 rowspan 属性と組み合わせて使用できます。
  • colgroup:複数の列で構成される列グループのすべてのセルが、このヘッダーセルに関連しています。 colspan 属性と組み合わせて使用できます。
  • auto:デフォルト値で、ブラウザが自動的に決定することを意味します。

以下は、 colgroup 属性と rowgroup 属性の例です。

<table>
  <thead>
    <tr>
      <th scope="col">ポスター名</th>
      <th scope="col"></th>
      <th colspan="3" scope="colgroup">サイズ</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th rowspan="3" scope="rowgroup">Zodiac</th>
      <th scope="row">フルカラー</th>
      <td>A2</td>
      <td>A3</td>
      <td>A4</td>
    </tr>
    <tr>
      <th scope="row">白黒</th>
      <td>A1</td>
      <td>A2</td>
      <td>A3</td>
    </tr>
    <tr>
      <th scope="row">セピア</th>
      <td>A3</td>
      <td>A4</td>
      <td>A5</td>
    </tr>
  </tbody>
</table>

上記の例では、列ヘッダー「サイズ」の scope 属性は colgroup で、このヘッダーセルが複数の列(この例では3列)に対応していることを示しています。


作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0