我正在挖掘AMP html,这条线立刻引起了我的注意。
AMP HTML文档必须:
包含顶级
<html ⚡>
代码(<html amp>
也被接受)。
所以我的第一个问题是 - <html ⚡>
有效的HTML吗?它的意思是,它似乎有效 - 但我看起来很奇怪。有人能指出unicode作为HTML属性的具体规则吗?
我的另一个问题是,它用于什么。在文档中指出,这是有效的AMP文档所必需的。
但放弃它并不会导致AMP验证错误。 AMP的JS源本身似乎并不关心它。
这真的是抓取器和机器人将文档标记为AMP的标志吗?
提前致谢。 :)
答案 0 :(得分:7)
HTML中的标记名称必须以ASCII字母开头,但属性名称几乎可以是任何名称。请参阅标准中的12.2.4.32 Before attribute name state。
答案 1 :(得分:2)
您可以使用Unicode,也可以使用<html amp>
;要么有效。但您必须使用一个来表示文档的状态。如果不使用它将失败AMP验证。我只使用<html amp>
,因为它更容易输入。
答案 2 :(得分:1)
您仍然可以在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)