HTML和XHTML之间的显示差异

时间:2013-07-18 12:04:36

标签: html xhtml standards-compliance

我认为XHTML文档应该以与“严格”HTML文档完全相同的标准合规模式显示。

但是,它们显示pre元素的方式有所不同:在HTML文档中,如果<pre>开始标记后面跟着一个LF(或CRLF),则忽略它。在XHTML中并非如此。

示例:HTML fileXHTML file内容相同但呈现方式不同。
(或者,如果您认为给予HTML文件和XHTML文件完全相同的内容(包括DOCTYPE)是一种欺骗,这里有两个遵循更多经典规则的文件:HTML 4.01 strictXHTML 1.0 strict。)

那么,这是否意味着this W3C page的陈述

  

所有换行符和空格的呈现方式与HTML中显示的完全相同。例外是在开始标记&lt; pre&gt;之后的新行。并且在结束标记&lt; / pre&gt;之前,它们被丢弃。

仅对HTML有效,而不适用于XHTML?我没有发现任何迹象表明XHTML可以根据需要以不同的方式显示。但是我测试过的所有浏览器都有。

1 个答案:

答案 0 :(得分:1)

删除起始换行符与HTML中的呈现无关,而Dave Raggett的页面只是有点不精确并且有点过时了。删除起始换行符是HTML 解析器的属性

in body树构建阶段,text/html mime类型的HTML5规范说:

  

标记名称为以下之一的开始标记:“pre”,“listing”

     

如果打开元素的堆栈在按钮范围内有p元素,则关闭p元素。

     

为令牌插入HTML元素。

     

如果下一个标记是“LF”(U + 000A)字符标记,则忽略该标记和    继续下一个。 (Prelines开头的Newlines    作为创作方便,会忽略块。)

     

将frameset-ok标志设置为“not ok”。

根据XML解析规则,不允许XML解析器执行此操作,因此XHTML不会删除该新行。