HTML5 的 XML 序列化,又名“XHTML5”
你知道的,我总是更喜欢 HTML 而不是 XHTML,因为它不那么冗长,而且我喜欢让事情变得简单。 真实的故事。
但这并没有阻止我想知道究竟是如何触发 HTML5 的 XML 模式的——让我们从现在起称它为 XHTML5。 事实证明,只需三个简单的步骤即可将 HTML5 文档转换为 XHTML5。
使用正确的 MIME 类型
在使用相应的 MIME
类型提供文档之前,我们并没有真正使用 XHTML5。 对于 XML,这是 application/xhtml+xml
。 我们可以通过配置 Web 服务器或使用服务器端脚本语言轻松地做到这一点。 这是一个 PHP 示例:
<?php header('Content-Type: application/xhtml+xml;charset=UTF-8'); ?>
请注意
,使用此MIME
类型提供的文档不会在 IE8 和旧版本中呈现。 相反,他们会触发下载弹出窗口。 (有一种变通方法允许我们将它们作为application/xml
发送,但是既然可以只使用 HTML,为什么还要麻烦呢?)
使用正确的 DOCTYPE——或者根本不使用它
DOCTYPE 声明,在“常规”HTML5 中可以写成 <!doctype html>
,在 XHTML5 中可以省略。 但是,如果我们坚持使用它,我们应该知道“DOCTYPE”在 XML 模式下应该以大写形式书写,如下所示:
<!DOCTYPE html>
请注意
,如果我们不使用大写 DOCTYPE,XML 解析器将返回语法错误。
第二部分可以用小写 (html)、大写 (HTML) 甚至混合大小写 (hTmL) 编写——它仍然有效。 但是,为了符合 HTML 兼容 XHTML 文档的多语言标记指南,它应该用小写字母书写。
指定 XML 命名空间
XHTML5 要求我们将 XML 命名空间添加到文档的根元素,在本例中当然是 html 元素。
<html xmlns="http://www.w3.org/1999/xhtml">
把它们放在一起
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Example XHTML5 document</title>
</head>
<body>
<!-- HERE BE DRAGONS -->
</body>
</html>
请记住,该文档必须作为 application/xhtml+xml
以 XML 序列化方式触发 HTML5。 DOCTYPE 声明在 XML 模式下是可选的,但如果不想省略,则需要大写。
当然,我们必须使用有效的 XHTML 语法才能使我们的文档正常工作。 这意味着我们将无法使用 <noscript>
或 document.write()
。 此外,一个语法错误就足以导致黄屏死机,而不是我们想要显示的页面。 谨慎使用!
更好的是,除非有充分的理由,否则永远不要使用 XHTML! 没有附加值,只会使事情复杂化。 如有疑问,请使用常规 HTML5。
相关文章
HTML5 document.head DOM 树访问器
发布时间:2023/01/11 浏览次数:184 分类:WEB前端
-
一个鲜为人知的 HTML5 JavaScript 好东西是 document.head DOM 树访问器,它比 document.getElementsByTagName(head)[0] 更有效(也更容易输入)。 文档的 head 元素是作为 html 元素子元素的第一个 head 元素
Bulletproof HTML5 <details> 使用 jQuery 回退
发布时间:2023/01/11 浏览次数:66 分类:WEB前端
-
HTML5 details 元素目前不受 Chrome 12 及更高版本原生支持的任何浏览器的原生支持。 这使得猜测这个新元素的确切行为有点困难,但阅读规范给了我们一个很好的主意。 清楚的是: detai
HTML5 使用的三个层次
发布时间:2023/01/11 浏览次数:65 分类:WEB前端
-
级别 1:它只是工作 HTML5 规范是在考虑向后兼容性的情况下编写的(并且仍在编辑中)。 HTML5 中有一些新功能已经可以在每个 A 级浏览器中使用,因此现在可以使用,不需要任何奇怪的
id 属性在 HTML5 中变得更加优雅
发布时间:2023/01/08 浏览次数:128 分类:WEB前端
-
HTML5 带来的更微妙但更棒的变化之一,适用于 id 属性。 HTML 4.01 和 HTML5 中的 id 有何不同 HTML 4.01 规范规定 ID 令牌必须以字母 ([A-Za-z]) 开头,后面可以跟任意数量的字母、数字 ([0-9]) 、
JavaScript 修复 XMLHttpRequest is not defined 错误
发布时间:2022/08/09 浏览次数:408 分类:WEB前端
-
出现“XMLHttpRequest is not defined”错误有两个主要原因:尝试在 Node.js 应用程序(在服务器端)中使用 XMLHttpRequest;拼写错误的 XMLHttpRequest 关键字(区分大小写)。