HTML表格验证colspan问题

时间:2018-06-24 15:59:20

标签: html html-table w3c-validation

我有这个html表:

<fieldset class="form login">
    <legend>Authorization</legend>
    <table>
      <tbody>
        <tr>
          <td colspan="1">
            <label class="form__label" for="login">Login</label>
          </td>
          <td colspan="3">
            <input id="login" type="email" required="required">
          </td>
        </tr>
        <tr>
          <td colspan="1">
            <label class="form__label" for="password">Password</label>
          </td>
          <td colspan="3">
            <input id="password" type="password" required="required">
          </td>
        </tr>
        <tr>
          <td class="text-center" colspan="4"><input type="submit"></td>
        </tr>
      </tbody>
    </table>
  </fieldset>

通过验证器(validator.w3.org)运行它时,出现错误:

Error: Table columns in range 3…4 established by element td have no cells beginning in them.

From line 21, column 16; to line 22, column 26

     </td>↩          <td colspan="3">↩   

是什么意思? 我找到了这个答案:
Help with HTML validation error: Table column has no cells beginning in it

但仍然不明白我必须做些什么才能使其有效?

1 个答案:

答案 0 :(得分:1)

  • 您的表有三行:

    Row 1:
    Row 2:
    Row 3:
    
  • 在第1行和第2行中,第1列中有一个单元格,而第2列至第4列中有一个单元格

  • 在第3行中,您有一个单元格跨越第1至4列

    Row 1: | cell 1,1 | cell 1,2-4 |
    Row 2: | cell 1,1 | cell 1,2-4 |
    Row 3: | cell 1,1-4            |
    
  • 验证器查看此表并抱怨说,尽管标记表明实际上有4列,但只有2列。

因此解决方案是将第1行和第2行中的colspan="3"替换为colspan="1"(或将其全部删除,因为colspan="1"毫无意义),并在第3行中替换{{1} }和colspan="4"。这样,标记就可以与表格的实际内容保持一致。