为什么 XHTML 标签在 HTML5 文档中有效,反之亦然?

Why do XHTML tags work in HTML5 documents and vice versa?

提问人:Mykhailo Seniutovych 提问时间:6/15/2020 更新时间:6/15/2020 访问量:121

问:

根据本文档,新标准不支持一些标签,例如 bigstrike。但是,当我声明我的 html 文档时,因为它们由于某种原因仍然有效,请考虑以下示例:XHTMLHTML5HTML5

<!DOCTYPE html /> <!-- HTML5 decalration -->
<html>
    <head>
    </head>
    <body>
        <!-- These tags should not work, because the document is declared as HTML5, but they still work -->
        <big>Hello</big>
        <strike>123</strike>
    </body>
</html>

反之亦然,标准中不支持许多其他标签,例如 svg 标签,但是当我声明我的文档时,它们仍然有效。请看这个例子:HTML5XHTMLXHTML

<!-- XHTML declaration -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
<html>
    <head>
    </head>
    <body>
        <!-- Should not work because SVG are not supported in XHTML standard -->
        <svg width="100" height="100">
            <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
        </svg>
    </body>
</html>

我使用的浏览器是 的当前版本。 谁能解释为什么会这样?无论指定如何,将文档声明为或浏览器是否都支持两者有什么意义?Google ChromeHTML5XHTMLDOCTYPE

HTML xhtml 文档类型 Web 前端 HTML4

评论

1赞 connexo 6/15/2020
您使用哪种 MIME 类型为 XHTML 页面提供服务? 或?application/xhtml+xmltext/html
0赞 Mykhailo Seniutovych 6/15/2020
@connexo两者都不是,我只是在本地 PC 上打开了 html 文件。这有什么不同吗?
0赞 connexo 6/16/2020
当然可以。您需要一个设置正确 mime 类型的 Web 服务器,与此无关。!DOCTYPE
0赞 Alohci 6/16/2020
HTML 和 XHTML 是同一种语言。哪些元素在一个元素中起作用,在另一个元素中起作用,除非出现奇怪的边缘情况。唯一的区别是语法和区分大小写。说明您在 DOCTYPE 中使用哪个是没有意义的。如果要在本地打开文件,则如果该文件具有“.xhtml”扩展名,则该文件将被视为 XHTML,否则将被视为 HTML。
0赞 Mykhailo Seniutovych 6/16/2020
@Alohci 如果浏览器无论如何都会按照他们想要的方式解释它,那么标签的意义何在?DOCTYPE

答:

1赞 leo848 6/15/2020 #1

在第一个示例中:

这些是所谓的已弃用标签,您仍然可以在 HTML5 中使用,但不建议使用。它们可以随时被浏览器删除(尽管这很不走运)。

第二个例子:

大多数浏览器(如 Google Chrome 或 Firefox)不会将 XHTML 呈现为 XHTML。他们实际上是用 HTML5 呈现的。XHTML 中的不同内容使用预处理器转换为 HTML5。因为SVG不是XHTML标准的一部分,所以它不会被转换,而是保持原样,因此像HTML5一样显示。