根据w3c </TD>
和</TR>
标记是可选的,因此下表完全有效。
<table>
<tr>
<td>google
<td>chrome
</table>
我测试过的所有浏览器都能很好地呈现表格。我只是想问一下这通常被认为是安全的,或者如果我无法访问的旧浏览器会导致问题。感谢。
它减少了包含许多表格的页面上的gzip html大小。
答案 0 :(得分:20)
这是有效的HTML但无效的XHTML 它本质上没有任何错误。
如果您查看Google's privacy policy(或其他任何页面)的来源,您会发现一些更为简洁的HTML。
这确实意味着XML解析器无法使用您的页面。
答案 1 :(得分:19)
这是安全的,因为标准中的可选性意味着所有浏览器(至少是那些甚至远程重要的浏览器)都会实现这一点 - 并且浏览器标准合规性通常会向相反的方向运行,以便尝试正确使用甚至是无效的HTML,而不是缺少可选的标签。
话虽如此,我发现省略这些标签会让事情变得更难阅读,如果目标是尺寸优化,这对您来说可能或不重要。
P.S。另外,如果你有非常大的表,我想知道在处理这样的结构时浏览器的HTML解析器是否会产生任何开销?我不确定没有基准测试或真正深入思考HTML解析器如何工作的细节,但如果发生这种情况可能会成为一个因素。
答案 2 :(得分:10)
我强烈建议不要这样做,尽管 在HTML4(和5)中有效。与您承担的技术债务相比,带宽节省微不足道。另请注意,它在XHTML中无效,因此请确保您的doctype设置正确。
答案 3 :(得分:8)
从一开始就有HTML中的可选标签 - 它们是从SGML继承的功能,因此早期的浏览器必须能够处理它们。虽然XHTML远离此并且需要更加统一的语法,但除非您明确告诉浏览器在XML模式下进行解析,否则这不会对您产生影响。我在使用HTML 4/5的标准解析器时从未发现过任何问题。
由于HTML5 so carefully描述了某些标签何时是可选的,我会读到这意味着有人进行了大量测试,以确保在这些情况下,大多数浏览器都会生成相同的文档树。
虽然节省的空间可以忽略不计,但我发现,<p>
,<li>
,<td>
和<tr>
的结束标记只会让我的生活变得更轻松我正在使用标记,这使我不太可能犯错误。
答案 4 :(得分:2)
我个人认为这不是好习惯。看看规范它并没有提供大量的信息。我知道它是XHTML所必需的所以我查阅了HTML 5规范。 HTML 5似乎与HTML 4一样,它是你链接到的,但是给了a little more information:
如果td元素紧跟td或th元素,或者父元素中没有更多内容,则可以省略td元素的结束标记。
答案 5 :(得分:1)
我建议永远关闭你的标签。没有理由不太好。浏览器可以处理一些不正确的封闭标签,但只是为了安全起见(这是一个很好的编程习惯!),关闭你的标签!
答案 6 :(得分:0)
关闭HTML中的所有代码,原因如下:
答案 7 :(得分:0)
当然,如果你只使用HTML,绝对没有问题,不是XHTML的情况,但我不认为你可以得到那么多,我也建议不要滥用表格记住div比表格更好
答案 8 :(得分:-4)
静态页面不适用于动态页面......可以调试
答案 9 :(得分:-5)
如果可能,您应该关闭<TR>
和<TD>
标签,但不要总是因为在某些情况下可能会打扰您。这是因为<TR>
和<TD>
标记可以设置为display:none
,而</TR>
标记则不能。这意味着如果使用</TR>
,您希望使用媒体查询扩展/限制显示的方案将失败。请考虑以下代码:
<style>
@media (max-width : 480px) {
.hidden-class {display:none;}
}
</style>
<table>
<tr>
<td>cell 1</td>
</tr class="hidden-class"> <!-- this will fail! -->
<tr class="hidden-class">
<td>cell 2</td>
</tr> <!-- this could stay -->
</table>
这意味着您可以将其写为:
<table>
<tr>
<td>cell 1</td>
</tr> <!-- this will now close the TR for every screen width, which will destroy your extenstion -->
<tr class="hidden-class">
<td>cell 2</td>
</tr> <!-- this could stay -->
</table>
这意味着唯一的方法是首先通过OMITTING THE:
<table>
<tr>
<td>cell 1</td>
<tr class="hidden-class">
<td>cell 2</td>
</tr> <!-- this could stay -->
</table>