【问题标题】:What's the deal with `html ⚡` in AMP pages?AMP 页面中的 `html ⚡` 是怎么回事?
【发布时间】:2016-06-13 23:15:20
【问题描述】:

我正在挖掘 AMP html,这一行立即引起了我的注意。

AMP HTML 文档必须:

包含顶级<html ⚡> 标签(<html amp> 也被接受)。

所以我的第一个问题是 - <html ⚡> 是有效的 HTML 吗?我的意思是,它似乎有效——但我看起来真的很奇怪。谁能指出将 unicode 作为 HTML 属性的具体规则?

我的另一个问题是,它的用途是什么。在文档中声明这是有效的 AMP 文档所必需的。

但删除它不会导致 AMP 验证错误。 AMP 本身的 JS 源码似乎也完全不在意。

这真的是爬虫和机器人将文档标记为 AMP 的标志吗?

提前致谢。 :)

【问题讨论】:

标签: amp-html


【解决方案1】:

HTML 中的标签名称必须以 ASCII 字母开头,但属性名称几乎可以是任何名称。请参阅标准中的12.2.4.32 Before attribute name state

【讨论】:

    【解决方案2】:

    可以使用Unicode,也可以使用<html amp>;要么工作。但是您必须使用一个来表示文档的状态。未能使用其中一个将无法通过 AMP 验证。我只使用<html amp>,因为它更容易输入。

    【讨论】:

    • “不使用将无法通过 AMP 验证”- AMP 不会抱怨将其排除在外。
    • 如果没有其中一个,文档将不会出现在 Google CDN 中。将您的文档附加到此前缀:https://cdn.ampproject.org/c/ - 使用不带 http 或 www 的 URI。您会收到一条错误消息。
    • 斯特凡:这不正确。请参阅output.jsbin.com/wilayanawe/quiet#development=1(在 devtools 控制台中)
    • 感谢 Malte。认为验证也是在没有开发标志的情况下发生的。你是对的。有一个错误。 :)
    • 开发控制台是一种技术。我建议的将在 CDN 中显示经过验证的文件,或者将显示使用 #development=1 技术显示的相同错误(如果有)。我的建议不需要使用 Chrome 开发工具。
    【解决方案3】:

    您仍然可以在 W3C Markup Validation Service 中尝试它(也称为 HTML 验证器,是的,它仍然存在!)

    在有效性的情况下,它写入几乎相同的错误

    Attribute amp not allowed on element html at this point.

    Attribute ⚡ not allowed on element html at this point.

    AMP 它只是与 HTML5 / HTML Living 标准兼容,类似于扩展,但没有向后兼容性。

    HTML 元素具有允许的属性列表 (http://w3c.github.io/html/single-page.html#the-html-element)

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      相关资源
      最近更新 更多