HTML table 验证 colspan 问题

HTML table validation colspan issue

我有这个 html table:

<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

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

  • 您的 table 有三行:

    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            |
    
  • 验证器查看此 table 并抱怨虽然标记说有 4 列,但实际上只有 2 列。

所以解决方案是将第 1 行和第 2 行中的 colspan="3" 替换为 colspan="1"(或者完全删除它,因为 colspan="1" 没有意义),并在第 3 行中替换 colspan="4"colspan="2"。通过这种方式,标记与 table.

的实际方面对齐