HTMLの複数の行にまたがるテーブルヘッダーを作成するにはどうすればよいですか?


80

次のようにテーブルを作成したいと思います。

|   Major Heading 1    |  Major Heading 2    |
|   Minor1  |  Minor2  | Minor3  |  Minor4   |
----------------------------------------------
|   col1    |   col2   |   col3  |    col4   |
rest of table ...

TH要素の行が1行しかないので、列が並ぶなどのヘッダー行を作成するにはどうすればよいですか?列幅が揃わないため、階層テーブルは適切なオプションとは思えません。また、colspan付きのTHタグで2行を使用することもできません。


そして、なぜ2行とcolspanを使用できないのですか?
tvanfosson 2013

1
THタグの複数の行は、THの単一の行にマージされます。上記の例を続けると、生成されるテーブルは、メジャー見出し1、メジャー見出し2、マイナー1、マイナー2、マイナー3、マイナー4の単一ヘッダー行になります。
statguy 2013

1つの解決策は、THではなく特別なCSSでTDを使用することですが、理想的には、従来のhtmlテーブル構造に従いたいと思います。
statguy 2013

私はそれが正しいとは思いません:jsfiddle.net/7pDqb
tvanfosson

3
オフトピックとしてクローズ?!「複数行のテーブルヘッダーを作成できますか?」完全に細かいスタックオーバーフローの質問のようです。自分で複数のtrをヘッダーに入れることがうまくいくかどうか疑問に思っていました。
Andrew Koper 2015年

回答:


109

これは私がそれを行う方法です(http://jsfiddle.net/7pDqb/でフィドルを操作します)Chromeでテストされました。

th, td { border: 1px solid black }
<table>
  <thead>
    <tr>
      <th colspan="2">Major 1</th>
      <th colspan="2">Major 2</th>
    </tr>
    <tr>
      <th>col1</th>
      <th>col2</th>
      <th>col3</th>
      <th>col4</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>data1</td>
      <td>data2</td>
      <td>data3</td>
      <td>data4</td>
    </tr>
  </tbody>
</table>


24

rowspan代わりに誤って使用していましたcolspanか?または、誤ってクロージングを忘れましたか</tr>タグをか?

tvanfossonの答えを拡張して、セマンティックとアクセシビリティの目的で要素scope属性をth使用します

th, td { border: 1px solid black }
<table>
  <thead>
    <tr>
      <th colspan="2" scope='colgroup'>Major Heading 1</th>
      <th colspan="2" scope='colgroup'>Major Heading 2</th>
    </tr>
    <tr>
      <th scope='col'>Minor1</th>
      <th scope='col'>Minor2</th>
      <th scope='col'>Minor3</th>
      <th scope='col'>Minor4</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>col1</td>
      <td>col2</td>
      <td>col3</td>
      <td>col4</td>
    </tr>
  </tbody>
</table>


ありがとう、まさに私の場合、誤ってrowspanを使用していた
maximus

7

ただし、複数の列にまたがるヘッダーセルの場合に加えて、2つの行にまたがるヘッダーセルを持つテーブルもよく見られます。

これが例です。参照col 5してdata5以下:

    <table>
        <thead>
            <tr>
                <th colspan="2">Major 1</th>
                <th colspan="2">Major 2</th>
                <th rowspan="2">col 5</th>
            </tr>
            <tr>
                <th>col1</th>
                <th>col2</th>
                <th>col3</th>
                <th>col4</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>data1</td>
                <td>data2</td>
                <td>data3</td>
                <td>data4</td>
                <td>data5</td>
            </tr>
        </tbody>
    </table>

これがフィドルです。


4

W3CのWebAccessibility Initiative(WAI)Webサイトは、以下に示すマークアップ構造を使用すると述べています。

(Webサイトのサンプルテーブルでレンダリングされたマークアップは、サンプルマークアップで表示されているものとわずかに異なることに注意してください。リンクを参照してサンプルテーブルを調べてください。)

出典:https//www.w3.org/WAI/tutorials/tables/irregular/#table-with-two-tier-headers

<table>
  <col>
  <colgroup span="2"></colgroup>
  <colgroup span="2"></colgroup>
  <tr>
    <td rowspan="2"></td>
    <th colspan="2" scope="colgroup">Mars</th>
    <th colspan="2" scope="colgroup">Venus</th>
  </tr>
  <tr>
    <th scope="col">Produced</th>
    <th scope="col">Sold</th>
    <th scope="col">Produced</th>
    <th scope="col">Sold</th>
  </tr>
  <tr>
    <th scope="row">Teddy Bears</th>
    <td>50,000</td>
    <td>30,000</td>
    <td>100,000</td>
    <td>80,000</td>
  </tr>
  <tr>
    <th scope="row">Board Games</th>
    <td>10,000</td>
    <td>5,000</td>
    <td>12,000</td>
    <td>9,000</td>
  </tr>
</table>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.