Html 没有tr的表格有效吗?

Html 没有tr的表格有效吗?,html,html-table,Html,Html Table,如果只有一行,省略表中的tr元素是否有效?如果它无效,那么所有当前浏览器是否都会按预期解释它 换句话说,这是否 <table> <td>column 1</td> <td>column 2</td> </table> <table> <tr> <td>column 1</td> <td>column 2</td&

如果只有一行,省略表中的tr元素是否有效?如果它无效,那么所有当前浏览器是否都会按预期解释它

换句话说,这是否

<table>
     <td>column 1</td>
     <td>column 2</td>
</table>
<table>
   <tr>
     <td>column 1</td>
     <td>column 2</td>
   </tr>
</table>

第1栏
第2栏
。。。表现得和这一样

<table>
     <td>column 1</td>
     <td>column 2</td>
</table>
<table>
   <tr>
     <td>column 1</td>
     <td>column 2</td>
   </tr>
</table>

第1栏
第2栏

根据标准,这是无效的,但tbody、tr、td浏览器忽略这些标记和相应的结束标记。但是不能在标记之外写入这些标记。
查看以下表格创建示例:

尽管根据规范,它不是有效的HTML,但现代web浏览器的行为并不严格,给用户提供了更可读的输出,而不是垃圾输出,这有时是开发人员的错误(不指向您)

究竟什么有效,什么无效,无法确定。此外,如果浏览器当前解析了一些错误的代码,则不能确保在将来的版本中也会这样做

查看以下摘自HTMLLocks文章的 。链接中也有一些关于错误更正的示例

浏览器中的错误处理相当一致,但令人惊讶的是已经足够了 它不是HTML规范的一部分。喜欢书签和 后退/前进按钮这只是在浏览器中开发的东西 多年来。上重复了已知的无效HTML构造 许多网站和浏览器都试图以符合 其他浏览器

HTML5规范确实定义了其中一些需求。 (WebKit在文章开头的评论中很好地总结了这一点 HTML解析器类。)

解析器将标记化的输入解析到文档中,建立 文档树。如果文档格式正确,则需要对其进行解析 直截了当

不幸的是,我们必须处理许多不可用的HTML文档 格式良好,因此解析器必须容忍错误

我们必须至少注意以下错误情况:

  • 要添加的元素在某些外部元素中被明确禁止 标签。在这种情况下,我们应该关闭所有标记,直到 禁止该元素,然后再添加它

  • 我们不允许直接添加元素。可能是 写文档的人忘记了中间的标签(或者 中间的标记是可选的)。这种情况可能发生在 以下标签:HTML HEAD BODY TBODY Ttr TD LI(我忘记了吗?)。

  • 我们想在内联元素中添加一个块元素。全部关闭 内联元素到下一个更高的块元素

  • 如果这没有帮助,请关闭元素,直到允许添加 元素–或忽略标记

  • 您还可以查看w3c文章

    有效的HTML是您与浏览器签订的唯一合同 制造商。HTML规范说明了应该如何编写, 以及他们应该如何解释您的文档

    不同浏览器的行为都不正确;他们都是 试图填补错误代码的空白。底线是,, 尽可能避免页面中的无效标记

    请注意,HTML5解决了这一问题,这是历史上第一次 HTML它定义了浏览器应该如何处理格式错误的标记。在 然而,在撰写本文时,对这个HTML5错误处理的支持还不成熟 在浏览器中广泛使用,因此您还不能依赖它


    这样一个问题背后的原因是什么?@Nimesh如果您不能更改HTML,而只更改CSS,并且您希望使用一个具有单行的表(例如,用于导航菜单),那么有时“显示:表格单元格”就没有什么可用的了。举个例子,一个列表包含一个UL标签和多个LI标签,其中UL单独没有包装到其他元素中。唯一的可能性是在UL上使用“显示:表格”,在LI元件上使用“显示:表格单元格”。到目前为止,这似乎在我测试的浏览器中有效。你怎么能只更改CSS而不更改HTML?它是由某个应用程序动态生成的吗?我不确定您是否正确理解了我的问题。我澄清了我的例子。如果无效,是否至少所有浏览器都会按预期进行解释?根据语法,这是无效的,但浏览器会忽略这些标记,因此它在我检查的地方工作。查找给定的链接。对不起,浏览器在这里会忽略哪些标签?在我的示例中,没有可以忽略的“tr”,因为它丢失了。你链接到的页面没有回答我的问题,因为它既不是一个w3c规范,它会告诉我我的语法是否有效,也不是一个测试结果,它说没有tr的语法在所有浏览器中都有效。事实上,至少在Firefox桌面上是这样,但还有更多的浏览器。