对 xhtml5 感到困惑:不再有“”,现在强制使用“meta”?

2024-04-20

我已经是长期用户XHTML 1.0 Strict,我现在正尝试在我的新项目中切换到 XHTML5。

我很困惑<?xml version='1.0' encoding='utf-8'?>对于 HTML5,不再被认为是有效的http://validator.w3.org/ http://validator.w3.org/。这是为什么?这不是所有 xml 文档都应该以这个开头吗?

当我删除标准时<?xml...,我的文档仍然无法验证:现在它缺少编码。我不喜欢那些meta标签,但它们现在是否有效地强制指定编码,以便成为有效的 (X)HTML5?


XML 声明是有效的,并且在 HTML5 的 XHTML 序列化中有效。以下相当简单的文档可以验证:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title></head>
<body></body>
</html>

但是,这仅适用于 HTML5 的 XHTML 序列化(XHTML 语法)。在 HTML 序列化中,这是不允许的。如果您将上述文档写入一个文件并将其存储在服务器中,该服务器将发送它Content-Type: text/html(如果文件名以“.html”结尾,通常会发生这种情况),然后您会收到一条错误消息:

Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML.
(XML processing instructions are not supported in HTML.)

这里的“HTML”仅指 HTML 序列化。

浏览器不关心任一语法中的 XML 声明。在 HTML 语法中,它只是被忽略,作为可恢复的语法错误。在 XHTML 语法中,除了encoding part.

尽管 XML 1.0 规范建议(但不要求)XML声明 http://www.w3.org/TR/2006/REC-xml11-20060816/#sec-prolog-dtd,这在实践中很重要(除了encoding)仅适用于能够处理不同版本 XML 的软件。浏览器则不然。除了 XML 1.0 之外,只有 XML 1.1,但使用不多。此外,HTML5被定义为XHTML语法中使用的XML版本是XML 1.0。

The encoding部分可能很重要,但是utf-8无论如何,这是 XML 的默认值。如果出于某种原因使用其他编码,则 XML 声明可能有助于防止任何冲突。 HTML5 CR 里面是这么说的编码的讨论 http://www.w3.org/TR/html5/document-metadata.html#charset:“在 XHTML 中,如有必要,应将 XML 声明用于内联字符编码信息。” Ameta当与 XML 内容类型一起提供时,标签在 XHTML 中并不能真正提供帮助,因为当看到标签时编码已经决定(默认为 UTF-8 或其他)。

对于 HTML 语法,<meta charset=...> tag may可以使用,但有效性不需要它,并且可以在 HTTP 标头中指定编码(这会覆盖任何meta标签)。用一个meta然而,标签可能会有所帮助,因为页面可能保存在本地,然后打开它时不会有任何可用的 HTTP 标头。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 xhtml5 感到困惑:不再有“”,现在强制使用“meta”? 的相关文章

  • Javascript - 如何从 location.href 中删除域

    我需要使用 Javascript 从 location href 中删除域名 我有类似的链接 http localhost App User UserOrder aspx id 949abc91 a644 4a02 aebf 96da3ac
  • 如何使用 rel=preload 预加载材质图标?

    我正在尝试使用谷歌灯塔优化我的网页 该报告指出 在导入 Material Design 图标的链接上使用 rel preloads 我尝试使用语法预加载它们 我也尝试过使用字体进行预加载 类型为 woff woff2 和 ttf 它们似乎都
  • 为什么自动关闭脚本元素不起作用?

    浏览器无法正确识别的原因是什么 只有这一点是公认的 这是否打破了 XHTML 支持的概念 注意 此声明至少对于所有 IE 6 8 beta 2 都是正确的 XHTML 1 规范的非规范性附录 HTML 兼容性指南 指出 3 元素最小化和空元
  • JavaScript - 离焦事件?

    我想要做的是显示带有文本颜色的输入字段black 然后 当该人在输入字段内单击时 onfocus 我想将文本颜色更改为red 然后 当该人单击输入字段外部 不再焦点 时 我想将文本颜色更改回black 我知道如何处理 JavaScripto
  • 将聊天文本中的成对符号替换为 html 标签,以设置粗体、斜体和删除线样式

    我正在尝试制作 Whatsapp 风格的文本帖子 当用户创建这样的文本时 Hi how are you where are you 然后这个文本会像这样自动改变 Hi你好吗你在哪 我知道我可以使用 php 正则表达式来做到这一点 如下所示
  • 我应该向所有内容添加类/id,还是使用其他选择器

    我永远不确定选择元素的最佳 最有效 方法是什么 假设我有以下布局 非常简单的示例 div ul li Link 1 li li Link 2 li li Link 3 li ul div 我想选择我的无序列表 确保我不会影响整个网站中的任何
  • 如何仅提取 mysql 和 php 中具有非零值的列?

    我正在尝试从 mysql 数据库中提取并显示在网页上 仅非零列 哪一列的日期是 0000 00 00 我不想在网页上显示这些列 下面分别是HTML代码和php脚本
  • 由于保存之前/之后的 CSV 差异而导致错误解析(Java w/ Apache Commons CSV)

    我有一个 37 列的 CSV 文件 我正在使用 Apache Commons CSV 1 2 在 Java 中解析该文件 我的设置代码如下 initialize FileReader object FileReader fileReader
  • 您可以使用 Jekyll 的 _includes 文件夹中的子目录吗?

    我的计划是在 includes目录 包括 页脚 包括 英雄 includes cta etc 当我引用那个时 include footers footer1 html 我收到以下错误 Liquid Exception Included fi
  • Javascript RegEx 替换所有不在 HTML 标签内的字符

    寻求一些帮助 我的正则表达式有点生锈 我试图用一个字符替换 javascript 中 HTML 标签之外的所有字符 例如 用破折号 替换这些字符 div class test Lorem Ipsum br Dolor Sit Amet di
  • 调整表格上的列宽

    目前 如果表格的宽度不大于容器的宽度 我可以调整表格列的大小 我希望发生的是在调整列大小时表格的宽度增加 以便滚动条出现在表格下方 基本上允许我调整大小而不受容器宽度的限制 这是一个小提琴 https jsfiddle net thatOn
  • 有没有办法在 .ogg 视频完全加载之前知道其文件大小?

    我知道 ogg 视频和 mp4 视频之间的一个区别是 ogg 视频没有描述文件大小的元数据 因此当加载 ogg 视频时 控件无法显示文件完全加载之前的剩余时间 如果 ogg 视频长度超过几分钟 这可能会成为问题 有没有办法在请求页面时获取此
  • 如何在 Node.js 中将 HTML 转换为图像

    我需要在 Node 服务器上将 HTML 模板转换为图像 服务器将以字符串形式接收 HTML 我尝试过 PhantomJS 使用一个名为 Webshot 的库 但它不能很好地与 Flex 框和现代 CSS 配合使用 我尝试使用 Chrome
  • 如何在 Android 上禁用 HTML 输入中的自动更正?

    我无法在 Android 上的网络浏览器中禁用文本输入的自动更正 我试过这个
  • PHP 5 的 HTML 表单库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个QuickForm替代品 QF 存在性能问题 例如组合框中的许多选项 我还想要一些更面向对象的东西 比如 Zend Form
  • 锚标记内的 CakePHP Span 标记

    我试图让 CakePHP 输出一个如下所示的链接 a href foo bar class some other classes span class icon new span FooBar a 所以我在我看来使用以下代码
  • 与 Ruby 1.9.X 中的 Iconv.conv("UTF-8//IGNORE",...) 等效吗?

    我正在从远程源读取数据 偶尔会得到另一种编码的一些字符 它们并不重要 我想得到一个 最佳猜测 utf 8 字符串 并忽略无效数据 主要目标是获得一个我可以使用的字符串 并且不会遇到以下错误 编码 UndefinedConversionErr
  • 计算网站上多个文件的下载次数的最佳方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 问题是 计算网站上多个文件的下载次数的最佳方法 我正在尝试做的事情 跟踪并统计多个文件的下载数量 对于具有不同扩展名的文件 foo z
  • ECHO MYSQL 结果显示空白页 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我知道这一定很简单 但我做不到 我需
  • 不透明div内的透明文本

    我有一个背景图像 上面有一个白色的 div 我希望该 div 内的文本是透明的 以便您可以 透过 背景图像 这有可能吗 应该看起来像这样 您需要将其用于您的文本CSS webkit text fill color transparent

随机推荐