web-dev-qa-db-ja.com

HTMLドキュメントの本文で<link>タグを使用できますか?

HTMLページの本文で<link>タグを使用できますか?この質問に対する答えを見つけようとしましたが、矛盾した情報が見つかりました。

Schema.org microdataマークアップをHTMLページに追加するとき、次のようなリンクタグに標準的な情報を追加します。

<div itemscope itemtype="http://schema.org/Book">
  <span itemprop="name">The Catcher in the Rye</span>—
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
  by <span itemprop="author">J.D. Salinger</span>
</div>

Schema.org から上記のサンプルコードを取得しました。彼らによると、これはitempropに標準的な参照を追加したいが、ウェブサイトにハイパーリンクを配置したくない人のために行く方法です。

ただし、W3では、<link>タグはheadセクション内にのみ配置する必要があるため、Schema.orgの例を無効にしていることが明確に記載されています。

正しいマークアップに固執したい場合、どのアドバイスに従うべきですか?

20
Edward Touw

Microdataextendslinkおよびmeta要素をbodyで使用できるようにするHTML5、ifitempropが含まれる属性。

itemprop属性がlinkまたはmetaに存在する場合、それらはフローコンテンツおよびフレージングコンテンツです。 linkおよびmeta要素は、itemprop属性が存在する場合にフレージングコンテンツが予想される場所で使用できます。

現在、この拡張機能はHTML 5.1 Nightly(Editor's Draft)にも含まれています( link element および meta element を参照)。しかし、 Microdata仕様はW3C Noteになりました 最近、この参照で何が起こるかを確認する必要があります。

RDFa 1.1extends HTML5では、linkおよびmeta要素がpropertỳ属性を含む場合、body要素で使用できます。

@property RDFa属性がlinkまたはmeta要素に存在する場合、ドキュメントのbodyで使用されている場合、それらは準拠していると見なされなければなりません。より具体的には、linkまたはmeta要素にRDFa @property属性が含まれ、HTML5文書のbodyで使用される場合、それらはフローコンテンツと見なされる必要があります。


そのため、linkanybody要素(たとえば、<link href="" rel="" />)を使用することはnotが許可されていますが、itemprop属性(Microdataの場合) property属性(RDFaの場合)。

したがって、link要素はbodyで使用できます。

<body>
<!-- … -->
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>
23
unor

W3Schoolsは、HTMLコーディングに関する業界標準を設定していません。とにかく W3Cとは関係ありません のサードパーティの参照サイトです。 SchemaResponsive design などの最先端のコーディングテクノロジーを使用する場合、W3Schoolsや他のサイトはしばしば間違っています。かなり新しいコードを使用する場合、ワンストップショップは W3C コンプライアンス基準を設定する必要があり、おそらく HTML5 Doctor 公式ではないが非常に尊敬されているHTML5を理解するのに助けが必要な場合。

コードを見ると、それは W3C検証 を通過し、<body> </body>内に含まれるリンク要素に問題はありません

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<div itemscope itemtype="http://schema.org/Book">
  <span itemprop="name">The Catcher in the Rye</span>—
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
  by <span itemprop="author">J.D. Salinger</span>
</div>
</body>
</html>

SHORT ANSWER:はい、<LINK>内で<body> </body>を使用できますが、 Unorが答えで言及したように、itempropを含める必要があります。

11
Simon Hayter

itemprop属性が存在する場合、リンク要素をHTMLドキュメントの本文に追加できます。 デモ です。

link itemprop 属性の例もあります。

0
Daniel