是否允许在<body>中使用<link>(不是rel ="stylesheet")?

Auf*_*gel 40 html5 w3c-validation

Google,Yahoo和MS 推出的新schema.org建议使用该<link>属性来显示在线商店中产品的状态:

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="name">Blend-O-Matic</span>
  <span itemprop="price">$19.95</span>
  <link itemprop="availability" href="http://schema.org/InStock"/>Available today!
</div>
Run Code Online (Sandbox Code Playgroud)

然而,根据w3schools.org <link>只允许在头部:

注意:此元素仅在head部分中出现,但它可以出现任意次.

我不习惯W3C风格,所以我无法理解W3C的确切定义.任何人都可以帮助我:它是否真的允许<link>在体内使用(在HTML5中,因为schema.org使用HTML5标签)或谷歌,雅虎和MS是否打破标准?

Mla*_*vic 54

BODY允许链接.我在HTML5中验证链接标记时遇到了同样的问题,我用它解决了这个问题

<link rel="stylesheet" property="stylesheet" href="css/homepage.css">
Run Code Online (Sandbox Code Playgroud)

需要同时拥有propertyrel标记

更新2016年(感谢下面的yuyokk):最近HTML5规范发生了变化,允许在体内有链接

  • 我花了很长时间寻找一种方法来包含`head`元素的css样式表,并且对于W3C的HTML5验证器仍然有效.这个消息丢失在互联网的某个地方救了我,谢谢.(我知道你看到了什么,[XKCD](http://imgs.xkcd.com/comics/wisdom_of_the_ancients.png)). (14认同)
  • <link property ="stylesheet"rel ="stylesheet"href ="style.css">对我不起作用,**但是按照相反的顺序它确实**.绝对值得注意的是,如果有人试图这样做,但认为他们可以像我那样做任何顺序.谢谢你的回答顺便说一下! (4认同)

fee*_*ela 29

WHATWG HTML规范提到,LINK-element可以有一个rel-attribute:

<link rel="…" />
Run Code Online (Sandbox Code Playgroud)

或者 - itemprop属性

<link itemprop="…" />
Run Code Online (Sandbox Code Playgroud)

但不是两个.

所述rel-version被限制为HEAD-元素,而itemprop-version可能出现在两者的HEADBODY-elements.

http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-link-element

什么是WHATWG规范:

whatwg.org/specs/web-apps/current-work/multipage/introduction.html#is-this-html5?

  • 当前规范并未说rel版本仅限于head.这取决于rel中的元素是否"正常". (8认同)
  • @Andrew可以定义"不起作用"吗?它不是锚标签. (2认同)

iur*_*rii 10

最近HTML5规范发生了变化,允许在正文中包含链接


Vol*_* E. 5

简而言之,我想补充上面的答案

<body>
    <link rel="stylesheet" property="stylesheet" href="pathto.css">
</body>
Run Code Online (Sandbox Code Playgroud)

正在使验证错误消失。即使只是添加property=""(RDFa 语法或itemprop=""(Microformat 语法) 属性也足够了。正如@Jukka K. Korpela@sideshowbarker在他们的答案中解释的那样,原因在于HTML5+RDFa 1.1 规范

上面的解决方案基本上是一种解决方法,让验证器根据关键路径实现中的需要忽略内联样式表。在未来版本的验证器中,它有望被淘汰。

顺便说一句,在 HTML5 中,您既不需要type属性,也不需要自闭合标记语法。