html - 如何让xhtml页面遵循严格的语法检查?

标签 html xhtml doctype xhtml-1.0-strict

我正在学习 XHTML。如果我的理解是正确的,XHTML 遵循严格的语法。所以我创建了这个标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
    <head>    
        <title>XHTML page</title>
<!--    </head> -->
    <body>
        This is the body
    </body>
</html>

我对结束头标记进行了注释,以检查 XHTML 的严格性。当我使用 .xhtml 扩展名保存此文件时,它显示错误。但是,当我使用 .html 扩展名保存它时,浏览器非常宽容,并且无论缺少 head 标签如何都会呈现标记。

所以我的疑问是,扩展名(.xhtml)是否使文件实际上成为xhtml并赋予其严格的语法行为?难道不应该由 DOCTYPE 来决定它是否是 xhtml 吗?

根据我在 HTTP 中读到的内容,文件扩展名并不重要,重要的是 header 类型。

最佳答案

当从 Web 服务器提供服务时,mime 类型(也称为内容类型)决定浏览器是否将文档视为 XHTML 还是 HTML。浏览器从不使用 DOCTYPE 来确定页面是否为 XHTML(但 HTML5 之前的验证器会这样做)。

当浏览器从文件系统本地读取文件时,它确实使用文件扩展名来决定它是 XHTML 还是 HTML。

有时,但并非总是如此,服务器的设置是这样的:如果客户端请求末尾带有“.xhtml”的 url,则该文档将使用 XHTML(例如, application/xhtml+xml) mime 类型。

关于html - 如何让xhtml页面遵循严格的语法检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180065/

相关文章:

html - 使用 flex 将列表分成相同元素的列

html - 查询字符串技巧过时了吗?

xhtml - 我应该使用哪种 MIME 类型来为 IE7 和 IE8 提供 XHTML5?

javascript - Selenium IDE 对 XHTML CSS 编码器有用吗?

html - 手持设备的样式表可以跳过加载图像吗

css - 为什么在删除 DOCTYPE 后 height 100% 有效?

html - 如何在表格中固定标题?

html-email - html电子邮件的文档类型

xml - 如何使用 Delphi/ADOM (OpenXML) 设置 xml DOCTYPE?

html - Font Awesome 水平居中