【问题标题】:Which MIME type should I use to serve XHTML5 to IE7 and IE8?我应该使用哪种 MIME 类型将 XHTML5 提供给 IE7 和 IE8?
【发布时间】:2011-04-14 21:54:35
【问题描述】:

我想使用 XHTML5,但显然他们两个浏览器不接受 application/xhtml+xml MIME 类型。我读到他们会接受text/xml(或application/xml 不确定),但这有点骇人听闻。所以我想知道我是否应该只为 IE7 和 IE8 提供 HTML5?

请不要继续谈论 XHTML 与 HTML 的优势。我知道。

【问题讨论】:

    标签: xhtml html internet-explorer-8 internet-explorer-7 mime-types


    【解决方案1】:

    XHTML 5 不是标准。 XHTML 2 确实规定了一种新的文档类型,尽管 XHTML 2 不受任何现代浏览器的支持(因为它在很大程度上尚未完成)。

    HTML5Doctor 建议,如果针对“XHTML5”方法,只需使用 HTML5 文档类型,这是有意义的。 HTML5 doctype 与 IE7/8 兼容。

    http://html5doctor.com/html-5-xml-xhtml-5/

    记住,要在 IE

    http://ejohn.org/blog/html5-shiv/

    此外,对于 XHTML5 的 MIME 类型,您必须使用 application/xhtml+xmlapplication/xml 提供内容,旧版本的 IE 不支持。因此,如果您尝试采用纯粹的方法,则无法获得 IE 6/7 支持。

    【讨论】:

    • 截至目前,XHTML2 是一只前鹦鹉; W3C discontinued its working group。这并不是说它将来不能复活,但现在你可以忘记它。
    • “XHTML 5 不是标准”——在什么意义上?
    • XHTML 5 是 XHTML 和 HTML5 标准的伪组合。因为 HTML 和 XHTML 不是彼此的子集,所以这两种语言的某些特性会因两者结合而丢失。有些人认为 XHTML 5 是 XHTML2(例如,能够在任何元素上设置 href="" 属性)和 HTML5(具有新的上下文元素)的组合。 “XHTML 5”只是两种格式之间不成文的“妥协”。
    • 不,它是在 HTML5 规范下定义的。它的书面。你是对的:它不是一个标准。更像是标准的一个子集。
    • @mattbasta。不过,这些问题很容易解决,因为只要您始终将文档视为 XML,它们就会在测试中很快出现。我在 XML 方面做了很多工作,无论是使用 XHTML 作为 application/xhtml+xml 还是使用其他 XML 应用程序,我从来没有发现需求很繁重。大多数情况下,我的 XHTML 是作为基于 XML 的工具链中的最后一步生成的,因此格式良好是给定的。
    【解决方案2】:

    我的差异化建议:

    • 在服务器上,使用基于 XML 的处理管道。
    • 但是就在您发出 HTTP 响应正文之前,转换为 HTML5 序列化。
      • 这意味着<!doctype html> 没有<?xml ...?> 也没有xmlns 指令。
    • 使用Content-Type: text/html; charset=utf-8 提供您的网页。 (如果必须,请更改 charset 参数的值,但请输入一个,否则您将面临UTF-7 trickery 的风险。)
    • 不要试图以用户代理为条件。

    您可以在服务器上获得 XML 严格性的好处——如果生成无效标记,您会注意到,这使得引用错误变得更加困难——但您不必处理弄清楚哪些客户端实际上会支持 XML mime 类型。

    请注意,即使在使用 HTML5 序列化时也可以directly embed SVG and MathML in HTML5<svg><math> 元素很神奇)。

    【讨论】:

    • 我认为 XHTML5(即 XHTML 序列化)是 HTML 序列化的一个子集。如果是这样,您甚至不需要转换步骤;只需使用 HTML5 内容类型即可。
    【解决方案3】:

    只要你:

    • 使用触发标准模式的一种
      • HTML 5
      • XHTML 1.0
      • HTML 4.01 严格 ** HTML 4.01 过渡(但不是省略 URI 的简短形式)
    • 提供符合 DTD 的代码(它使 QA 测试更容易)
      • … 或指定如果您使用 HTML 5(因为没有 DTD)
    • 如果您提供 XHTML,请遵循兼容性指南

    始终使用相同的 Doctype 通常是个好主意。

    在某些浏览器中作为 application/xhtml+xml 而在其他浏览器中与 text/html 相同的内容通常是浪费时间和精力。

    【讨论】:

      猜你喜欢
      • 2012-05-28
      • 2013-02-13
      • 1970-01-01
      • 2017-09-14
      • 2017-06-10
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多