Могу ли я использовать теги в теле HTML-документа?


Могу ли я использовать теги <link> в теле HTML-страницы? Я попытался найти ответ на этот вопрос, но обнаружил противоречивую информацию.

При добавлении Schema.org разметка микроданных на 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 . По их словам, это путь для людей, которые хотят добавить каноническую ссылку на элемент, но не хотят размещать гиперссылка на их веб-сайте.

W3, однако, четко указывает, что теги <link> должны размещаться только в разделе заголовка, что делает Schema.org пример неверен.

Если я хочу придерживаться правильной разметки, какому совету я должен следовать?

Author: Edward Touw, 2013-11-13

3 answers

Микроданные расширяет HTML5 таким образом, чтобы элементы link и meta могли использоваться в body, если они содержат атрибут itemprop.

Если атрибут itemprop присутствует в link или meta, они являются содержимым потока и содержимым формулировки. Элементы link и meta могут использоваться там, где ожидается формулировка содержимого, если присутствует атрибут itemprop.

Это расширение в настоящее время также включено в HTML 5.1 Nightly (Черновик редактора) (см. link элемент и meta элемент). Но поскольку спецификация микроданных недавно стала примечанием W3C, нам придется посмотреть, что произойдет с этой ссылкой.

РДФА 1.1 расширяет HTML5 таким образом, что элементы link и meta могут использоваться в body, если они содержат атрибут propertỳ.

Если атрибут @property RDFa присутствует в элементах link или meta, они ДОЛЖНЫ рассматриваться как соответствующие если используется в body документа. Более конкретно, когда элементы link или meta содержат атрибут RDFa @property и используются в body документа HTML5, они ДОЛЖНЫ рассматриваться как содержимое потока.


Таким образом, вам не разрешено использовать любые link элемент (например, <link href="" rel="" />) в body, но только с атрибутом itemprop (для микроданных) соответственно. атрибут property (для RDFa).

Таким образом, ваш элемент link может быть использован в body:

<body>
<!-- … -->
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>
 25
Author: unor, 2013-11-14 09:18:43

W3Schools не устанавливает отраслевые стандарты кодирования HTML. Это просто сторонний справочный сайт, который в любом случае не связан с W3C. 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>

КОРОТКИЙ ОТВЕТ: Да, вы можете использовать <LINK> в <body> </body>, но, как отметил Унор в своем ответе, он должен включать в себя itemprop.

 12
Author: Simon Hayter, 2013-11-13 18:02:57

Элемент ссылки может быть добавлен в текст HTML-документа, если присутствует атрибут itemprop. Вот демонстрационная версия .

Также вот пример атрибута link itemprop.

 0
Author: Daniel, 2014-02-06 15:33:11