XHTML标签在HTML中有效吗?

6
我了解HTML中的换行符是<br>,而XHTML等效的是<br />
我知道在XHTML文档中不能使用上述HTML标签,但反过来呢?<br />在HTML中是否有效?

1
看起来有效 >> http://www.w3schools.com/tags/ref_html_dtd.asp - JMax
4
w3schools是一个糟糕的参考网站,请避免使用。请查看w3fools.com以获取有关此的原因列表,并了解可替代的资源。 - Moses
1
@JMax — W3Schools的那个答案极具误导性,这使得该页面成为广告覆盖教程网站中排名前50%的页面之一,该网站因名称类似于W3C而获得了过多的反射荣耀。 - Quentin
我会阅读页面http://dev.w3.org/html5/markup/syntax.html#void-element...它对空元素中允许和不允许的内容有非常好的描述(提示:非常宽松)。 - Moses
@Moses和Quentin:谢谢。我会记住你们的建议,以备将来的评论 :) - JMax
4个回答

4
这取决于你所说的HTML版本。
在最新的稳定版HTML 4.01中,语法与<br>>相同,意味着与<br>&gt;相同。这意味着它是有效的,因为你可以在任何可以换行的地方使用>(尽管<meta />通常无效),但并不是你想要的。浏览器的限制(由XHTML 1.0规范利用)意味着它被视为<br>,即使它不应该是这样的。在此功能周围的混乱意味着它被标记为需要避免HTML 5改变了这一点,将/转化为语法糖。完全没有意义,但允许XML迷们感到高兴。

2

<br /> 是向后兼容的,在HTML文档中使用不会导致渲染问题。

另外,请注意,除非您使用MIME类型application/xhtml+xml发布文档,否则在XHTML文档中放置<br>不会导致其崩溃。在XHTML文档中留下未关闭的BR是一个验证错误,但这是一个非常小的错误,本身不太可能引起任何问题。

编辑:是的,在HTML5中,关闭/再次正式变成了可选项。


1

<br /> 是有效的HTML。一些HTML页面可能是由无法输出<br>的XML引擎生成的,因此必须能够解析它。


你能否提供一个链接到HTML规范的备份,比如HTML4? - Shi
你指的是这四个例子中的哪一个? - Shi
为了正确解析它,每个换行符后必须呈现一个可见的 > 字符。不要尝试使用非 HTML 感知的 XML 引擎生成 HTML。 - Quentin

1

是的,XHTML兼容HTML。

我相信在HTML5中有一个例外,即处理指令如<?xml...>已被弃用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接