根据http://www.w3.org/TR/html401/interact/forms.html#h-17.4,输入元素应该以单个>
而不是/>
. 尽管大多数浏览器都可以处理以 结尾的输入元素,但是/>
根据 HTML 语法规则,这样的输入元素是否有效?换句话说,元素在HTML 4中是否类似<input ... />
且<br />
有效?
(这个问题是关于 HTML 而不是 XHTML !!!)
根据http://www.w3.org/TR/html401/interact/forms.html#h-17.4,输入元素应该以单个>
而不是/>
. 尽管大多数浏览器都可以处理以 结尾的输入元素,但是/>
根据 HTML 语法规则,这样的输入元素是否有效?换句话说,元素在HTML 4中是否类似<input ... />
且<br />
有效?
(这个问题是关于 HTML 而不是 XHTML !!!)
该语法在某些地方是有效的,但并不意味着与 XHTML 中的相同,所以不要使用它们。
在 HTML 4<foo />
中(其中foo是定义为EMPTY的元素的名称)的含义与相同的<foo>>
含义相同<foo>>
(尽管几乎没有浏览器正确支持语法,Emacs-W3 曾经支持过,但破坏了与标准的兼容性以支持正确呈现所谓的 HTML 兼容 XHTML 1.0 文档)。
因此,这在您可以拥有 a 的地方有效,>
例如允许您拥有 an 的任何地方,<img>
但在其他地方则无效(例如作为(in Strict)<hr>
的子元素的an)。<body>
与可选开始和结束标签规则的交互增加了更多的复杂性。在过渡性文件中,这是有效的:
<link …/>
<h1>Hello, world</h1>
并且意味着:
<link>
</head>
<body>
>
<h1>Hello, world</h1>
这种速记语法可能很有用,或者至少可以节省时间,例如:
<title/The quick brown fox/
而不是更冗长:
<title>The quick brown fox</title>
…但是语法从来没有得到很好的支持,规范说应该避免它。
实际上解决了...根据 W3C HTML 4 验证器,最好不要在 HTML 4 中使用这种编写元素名称的方式:
NET-enabling start-tag requires SHORTTAG YES
<br />
The sequence <FOO /> can be interpreted in at least two different ways,
depending on the DOCTYPE of the document. For HTML 4.01 Strict, the '/' terminates
the tag <FOO (with an implied '>'). However, since many browsers don't interpret it
this way, even in the presence of an HTML 4.01 Strict DOCTYPE, it is best to avoid
it completely in pure HTML documents and reserve its use solely for those written in XHTML.
来自HTML 兼容性指南:
在空元素的尾随/
和之前包括一个空格,例如,和。此外,对空元素使用最小化的标记语法,例如,因为XML 允许的替代语法在许多现有用户代理中给出了不确定的结果。>
<br />
<hr />
<img src="karen.jpg" alt="Karen" />
<br />
<br></br>