Element link is missing required attribute property

<!DOCTYPE html>
...
<link rel='stylesheet' id='basecss-css' href='http://www.someurl.com/modules/14ce1e21/peadig-eucookie.css' type='text/css' media='all' />

Why is the validator (http://validator.w3.org/) rejecting this? What attribute is "required" that I am not aware of?

The error:

Error Line 408, Column 142: Element link is missing required attribute property. …/modules/14ce1e21/peadig-eucookie.css' type='text/css' media='all' /> Attributes for element link: Global attributes href crossorigin rel media hreflang type sizes Also, the title attribute has special semantics on this element.

71086 次浏览

你的 <link><body>里面吗? 如果是的话,试着把它放在文档顶部的 <head>里面。

@ stevelove 的建议显然是实用的解决方案,但对于“为什么”这个问题,这里有一个理论上的答案:

虽然在旧的 HTML 规范中,link元素在 body中是无条件无效的,但是 HTML5有更宽松的规则。根据 HTML 5.1 Night (验证器或多或少试图跟上) ,如果 link元素具有 itemprop属性,那么 link元素也可以出现在文档主体中(只要允许使用措辞内容)。这似乎使得错误消息更加令人费解。部分解释是验证器实际上是针对 HTML5 + RDFa 进行验证的,而 RDFa 定义了 property属性。问题仍然是验证器检查的是哪个特定的 RDFa 定义,因为定义也需要重新定义 HTML 的规则。

无论如何,错误消息中的信息已经过时了。显然,错误消息的更新速度没有验证器的基本功能快。

它希望它在你的脑海里。然而,如果 css 不是太重要,立即加载,你会得到谷歌的网页速度工具告诉你把它在身体的底部。

例如,我使用一个 jquery 主题(redmond)来设计我的自动补全。没有必要把这个放在我的页面顶部,因为它只会减慢其他一切。

所以,不要太担心完美的 w3c 验证。

以下是我对未来需求的评论:

W3c 页面中,我们有以下评论:

如果使用 rel 属性,则元素仅限于 head 当与 itemprop 属性一起使用时,元素可以是 在头部元素和页面主体中都使用,以 微数据模型的约束。

因此,可以通过改变 itemproprel来解决这个误差,因为 rel可以用在头部,而 itemprop可以用在身体上。

希望能帮到别人。

property='stylesheet'

如果您不想将您的链接移动到文档的 <head>

<link rel='stylesheet' property='stylesheet' id='basecss-css'  href='http://www.someurl.com/modules/14ce1e21/peadig-eucookie.css' type='text/css' media='all' />

这里是 W3C HTML5验证器维护人员。正如在另一个答案中指出的,除了检查 HTML5规范本身的需求之外,验证器还检查 HTML + RDF 1.1规范中的需求:

Http://www.w3.org/tr/html-rdfa/

虽然 HTML 规范本身说 link通常不允许出现在 body * 中,但是 RDFa 规范说,如果 link元素具有 property属性,则允许出现在 body * 中。

所以验证器消息基本上是说: 「这里只允许 link元素具有 property属性。但是这个特定的 link元素没有 property属性。」

* HTML 规范本身也规定,如果 link元素具有 itemprop属性,那么就允许在主体中使用 link元素ーー但只有在 link元素没有 rel值的情况下才允许使用 link元素。(itemprop是“ Microdata”属性,其用途与 RDFa property属性基本相同)。

因此,我们有两个不同的属性,它们都独立地影响 link元素在文档中允许出现的位置,这使验证器中的检查逻辑复杂化,从而使得很难为这种情况发出更好、更有帮助的错误消息。