代码之家  ›  专栏  ›  技术社区  ›  Andreas Bonini

HTML验证帮助错误:表列中没有以其开头的单元格

  •  17
  • Andreas Bonini  · 技术社区  · 15 年前

    请帮我一下 this 验证错误。我不明白这意味着什么,或者什么不是我的HTML标准投诉。

    我会在这里重新发布它,因为我希望我能修复它,这个链接将不再工作:

    由元素td建立的表列2中没有开始的单元格。

    …="tooltip_table"><tr><td colspan="2">20 yd range</td></tr><tr><td colspan="2"
                                         ↑
    
    8 回复  |  直到 8 年前
        1
  •  12
  •   Alohci    8 年前

    HTML 5.2草稿:第4.9.12.1节表格的形成

    http://w3c.github.io/html/tabular-data.html#forming-a-table

    步骤22:如果表中有一行或一列只包含没有固定单元格的槽,那么这是一个表模型错误。

        2
  •  16
  •   Pekka    15 年前

    当你说 colspan="2" ,该列应该横跨两列。我的猜测是,表中的其他地方没有定义第二列,因此 CalSn=“2” 不可能(和不必要)。

    我在里面找不到任何东西 spec 明确表示这是非法的。也许该规范中引用的表计算算法不同于4.01,但在我的时区尝试绕过它已经太晚了:)

    但是,我发现错误消息太完美了,不可能是一个彻底的错误。

    由元素td建立的表列2中没有开始的单元格。

    通过使用 CalSn=“2” ,您意味着存在第二列,在这种情况下不存在第二列。常识告诉我唠叨是正确的。

    也许有人能对这个有所了解…或者它确实是一个bug。

        3
  •  2
  •   Will    14 年前

    我相信这是一个错误,仍然没有解决。考虑 this example page 并通过W3C验证器运行它。它给出了“由元素td建立的表列3中没有以它开头的单元格”的错误,但是每个表有4个单元格/列,并且在第二个单元格上调用2的“colspan”。

        4
  •  1
  •   glebm    15 年前

    看起来HTML5验证程序有问题。 如果您使用HTML4.01 Transitional进行验证,并且在HTML5中表HTML没有发生太大的更改,则不会出现此错误。

    http://validator.w3.org/check?uri=http://www.wowpanda.net/s9712&charset=(detect+automatically)&doctype=HTML+4.01+Transitional&ss=1&outline=1&group=0&verbose=1&user-agent=W3C_Validator/1.654

    报告可能是个好主意

        5
  •  1
  •   user1322720    11 年前

    我在一个动态创建的表上也有同样的错误。根据输入的不同,是否显示了一些行。这样地:

    不会导致错误:

    <table>
    <tr>
    <td> cell 1 in row 1 </td>
    <td> cell 2 in row 1 </td>
    </tr>
    <tr>
    <td colspan=2> one cell in row 2 </td>
    </tr>
    </table>
    

    不会导致错误:

    <table>
    <tr>
    <td> cell 1 in row 1 </td>
    <td> cell 2 in row 1 </td>
    </tr>
    </table>
    

    导致错误:

    <table>
    <tr>
    <td colspan=2> one cell in what is now the only row </td>
    </tr>
    </table>
    

    当第一行没有显示时,我将页面编程为从上一个示例中删除colspan后,错误就消失了。像这样:

    <?php if (first row with two cells is displayed) echo 'colspan=2'; ?>
    

    我觉得这是合乎逻辑的。只有一个单元格的colspan=2就像告诉来访的人在没有任何交叉点的街道上右转,相信他们会一直往前走。他们不会的。相反,他们会被挂断寻找不在那里的东西。也许这不是一个完全准确的类比,但是你可以想象一个愚蠢的浏览器在寻找你告诉它存在但不存在的东西时会产生显示错误。浏览器不应该“认为”您的代码与您编写代码的方式不同。

        6
  •  1
  •   riddler    8 年前

    只需为Alohci的答案修复链接。

    https://w3c.github.io/html/single-page.html#forming-a-table

    1. 如果表中有一行或一列只包含没有定位单元格的槽,那么这是一个表模型错误。
        7
  •  0
  •   Community CDub    8 年前

    这条线有点旧,但我把它贴给任何碰到它的人。

    使用标记定义每一列将删除消息,并为colspan提供一些相关内容。

    答案中的更多信息: Why is colspan not applied as expected

        8
  •  0
  •   user3261298    11 年前

    如果启动表,它将修复验证列错误。 如果您的表有8列,那么第一行必须有8个元素,如果您只是在初始化,则不希望看到这些元素。css元素是: tr.init_border:无; 以及8列表的第一行。 结果是-您没有看到第一行,并且验证错误已修复。

    推荐文章