我一直并将继续关闭HTML输入,例如
<input type=text />
而不是非XHTML方式
<input type=text>
但我的问题是,无论哪种方式都有任何可预见的问题,即跨浏览器,移动设备等?我刚才注意到我使用的框架生成没有结束标记的输入,我讨厌我的代码和他们的代码之间的差异。这真令人讨厌和丑陋。
答案 0 :(得分:2)
input
标签已经解锁了很长时间,几乎任何系统都应该能够在没有关闭的情况下处理它。如果您已将文档声明为XHTML,那么它将不会验证标记是否未关闭,并且某些XML实用程序可能无法解析它,但Web浏览器的设计在他们接受的内容中非常宽松。
答案 1 :(得分:1)
就个人而言,由于关闭HTML文档中的空标记,我从未见过跨浏览器问题。
但是,根据Refactoring HTML,Netscape 3等旧版浏览器无法正确解析空元素。
这是因为在SGML和一些HTML4解析器中,支持语法“NET”,类似于空标记语法:(引自XHTML Considered Harmful)
“/&gt;”空标签语法实际上具有完全不同的含义 HTML4。 (这是SHORTTAG最小化功能,称为NET,如果我 正确地回忆起这个名字。)具体来说,是XHTML
<p> Hello <br /> World </p>
...如果被解释为HTML4,则完全等同于:
<p> Hello <br>> World </p>
......并且应该真正呈现为:
Hello > World
因此,如果您使用的是HTML4 <!DOCTYPE>
并定位到Netscape 3,请不要这样做!但是如果你使用的是HTML5(或XHTML),那么关闭你的空标签是没有害处的 - 事实上,你必须使用XHTML,或者Tim Bray会杀死一只小狗。
答案 2 :(得分:0)
有一个未关闭的输入标记仍然是有效的html,所以如果你不需要符合xhtml标准,你应该没问题。