我总是学会关闭像img
,meta
等HTML标签,如下所示:
<img src="..." />
<meta charset="..." />
<hr />
<br />
<input type="..." />
但是我看到很多网站都没有将/>
放在最后。他们只是将>
放在最后。结果如下:
<img src="...">
<meta charset="...">
<hr>
<br>
<input type="...">
但对我来说这似乎并不正确......当你这样做的时候,浏览器怎么知道标签是否仍然需要在某个地方关闭?这也是我多年前学到的东西。
但即使Twitter Bootstrap正在关闭最后没有input
的{{1}}代码。
这是非常有效的HTML吗?它现在是一种首选方式吗?
答案 0 :(得分:5)
<foo />
是XML语法。它仅在XML(包括XHTML)中有意义。
但是,让我们来处理HTML。
当您这样做时,浏览器如何知道标签是否仍然需要在某处关闭?
某些元素需要结束标记。这些必须有明确的</foo>
某些元素不能包含任何子节点,并且不能有明确的</foo>
。例如<img>
。
某些元素具有可选的结束标记(例如<p>
)。浏览器会在遇到显式结束标记(</p>
)时关闭这些元素,他们遇到的元素的开始标记不允许作为该元素内的子节点(例如<div>
内部另一个<p>
内的<li>
或<li>
。
浏览器知道哪些元素具有必需,可选或禁止的结束标记,因为它们被编程为识别HTML。
HTML 5允许元素上的/>
语法禁止结束标记,但这只是沉迷于XML的人的语法糖。
答案 1 :(得分:0)
这在HTML5中有效,但在XHTML中无效。我个人更喜欢使用它,只是因为节省了一些字节。