如何构建表头而不是跨越HTML中的多行?

sta*_*guy 70 html html-table

我想构建一个表如下:

|   Major Heading 1    |  Major Heading 2    |
|   Minor1  |  Minor2  | Minor3  |  Minor4   |
----------------------------------------------
|   col1    |   col2   |   col3  |    col4   |
rest of table ...
Run Code Online (Sandbox Code Playgroud)

看看TH元素只有一行,如何构造标题行,如列排列?分层表似乎不是一个好的选择,因为列宽不会排列,我也不能使用带有colspan的TH标签的两行.

tva*_*son 94

我就是这样做的(在http://jsfiddle.net/7pDqb/上工作小提琴)在Chrome中测试过.

th, td { border: 1px solid black }
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


rin*_*t.6 21

你不小心使用rowspan而不是colspan?或者您是否意外忘记了结束</tr>标签?

延伸tvanfosson的答案,我将元素scope属性th用于语义和可访问性目的:

th, td { border: 1px solid black }
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


gm2*_*008 5

然而,除了跨越多个列的标题单元的情况之外,还经常看到具有跨越两行的标题单元的表.

这是一个例子.见col 5data5以下:

    <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>
Run Code Online (Sandbox Code Playgroud)

这是小提琴.