【问题标题】:How to enforce XHTML5 interpretation of a Web document?如何强制对 Web 文档进行 XHTML5 解释?
【发布时间】:2013-01-30 13:11:45
【问题描述】:

有什么方法可以通知 Web 浏览器文档是用 XHTML5 编码的,即 HTML5 的 XML 序列化?这个问题并不像第一印象所暗示的那样明显——符合标准的 XHTML5 标头与用于 XHTML 1.0 的标头相同,因此我的浏览器(Mozilla Firefox 18)将 XHTML5 视为 XHTML 1.0,因此抱怨以前不可用的所有内容XHTML5 出现了。

根据W3C HTML5 Candidate Recomendation,DOCTYPE 标头是可选的(对于有效的XML 甚至是错误的),html 命名空间与XHTML 1.0 完全相同。那么我们如何知道如何对下面的代码进行分类呢?而浏览器又是如何区分这两种标准的呢?

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
    <head>
        <title>A questioning document</title>
    </head>
    <body>
        XHTML5 or XHTML 1.0 — that is the question...
    </body>
</html>

【问题讨论】:

  • Firefox 在哪里提出这些投诉?投诉的具体内容是什么?
  • 没有办法让&lt;iframe&gt; 正常工作,也就是说,可以使用&lt;a&gt;target 属性向其中加载内容。 XHTML 1.0 Strict 中禁止内嵌框架,但在 HTML5 中允许,因此它的 XML 序列化 - XHTML5。但是 Firefox 无法区分 XHTML5 和 XHTML 1.0(所以我不能)并假定 Strict 变体为默认值,因此丢弃了&lt;iframe&gt;
  • &lt;iframes&gt; 在 XHTML 1.0 过渡版本中受支持。我怀疑您的问题不是“Firefox 已决定它是严格的并且忽略 iframe”,而是“Firefox 不支持 XML 模式下的 iframe”。我建议不要使用 XHTML(至少是客户端)。麻烦多多就值得了。
  • @Quentin - Firefox 的 XML 模式支持 iframe。看我的回答。
  • "那么我们怎么知道下面的代码是怎么分类的呢?浏览器又是怎么区分这两个标准的呢?"它没有。

标签: xml html


【解决方案1】:

&lt;iframe&gt; 在 XHTML5 中(即 XML 模式)在 Firefox 中运行良好。但是您需要使用id 属性而不是name 属性来识别iframe。

另一方面,对于 IE9,您需要使用 name 属性,而不是 id 属性。

最好的办法是同时使用两者,设置为相同的值。

有关示例,请参阅 http://www.alohci.net/application/xhtml+xml/iframe-in-xml.htm.ashx

【讨论】:

  • 真相。 id 属性至关重要,它使&lt;iframe&gt; 在 Firefox 的 XML 模式下完美运行。这有点棘手,因为缺少id 不会触发任何错误消息——它只是“禁用”了这个方便的功能。谢谢你的回答和例子!
【解决方案2】:

请参阅这些链接,了解 XHTML 的未来以及为什么您可能只看到支持 XHTML 1.0 验证:

http://www.w3.org/2009/06/xhtml-faq.html

https://softwareengineering.stackexchange.com/questions/149839/is-xhtml5-dead-or-is-it-just-an-synonym-of-html5

【讨论】:

    猜你喜欢
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 2014-06-22
    • 2011-08-10
    • 1970-01-01
    • 2016-10-13
    • 2012-03-21
    相关资源
    最近更新 更多