2

我一直并将继续关闭 HTML 输入,例如

<input type=text />

而不是非 XHTML 方式

<input type=text>

但我的问题是,无论哪种方式都会有任何可预见的问题,即跨浏览器、移动设备等?我刚刚注意到我使用的框架生成没有结束标记的输入,我讨厌我的代码和他们的代码之间存在差异。这真的很烦人和丑陋。

4

3 回答 3

2

input标签已经关闭了很长时间,几乎任何系统都应该能够在没有关闭的情况下处理它。如果您已将文档声明为 XHTML,则它不会验证标记是否未关闭,并且某些 XML 实用程序可能无法解析它,但 Web 浏览器被设计为在它们接受的内容方面非常自由。

于 2012-06-27T20:06:19.970 回答
1

就个人而言,我从未见过由于关闭 HTML 文档中的空标签而导致的跨浏览器问题。

但是,根据Refactoring HTML,旧版浏览器(例如 Netscape 3)将无法正确解析空元素。

这是因为在 SGML 和一些 HTML4 解析器中,支持类似于空标记语法的语法“ NET ”:(引自XHTML 被认为是有害的)

"/>" 空标签语法在 HTML4 中实际上具有完全不同的含义。(如果我没记错名字的话,它就是被称为 NET 的 SHORTTAG 最小化特性。)具体来说,XHT​​ML

<p> Hello <br /> World </p>

...如果解释为 HTML4,则完全等同于:

<p> Hello <br>&gt; World </p>

...并且应该真正呈现为:

Hello
> World

因此,如果您使用的是 HTML4<!DOCTYPE>并针对 Netscape 3,请不要这样做!但是如果您使用的是 HTML5(或 XHTML),关闭空标签并没有什么坏处——事实上,在 XHTML 中您必须这样做,否则 Tim Bray 会害死一只小狗。

于 2012-06-27T20:25:05.540 回答
0

有一个未关闭的输入标签仍然是有效的html,所以如果你不需要满足xhtml标准,你应该没问题。

于 2012-06-27T20:04:36.150 回答