Является <link> (не rel= "stylesheet" ), разрешенным для использования в <body>?
Новый schema.org Google, Yahoo и MS рекомендует использовать атрибут <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="#" onclick="location.href='http://schema.org/InStock'; return false;"/>Available today!
</div>
Тем не менее согласно w3schools.org <link>
разрешено только в разделах заголовка:
Примечание. Этот элемент находится только в разделе главы, но может появляться любое количество раз.
Я не привык к стилю W3C, поэтому я не смог понять точное определение W3C. Может ли кто-нибудь мне помочь: действительно ли разрешено использовать <link>
внутри тела (в HTML5, поскольку schema.org использует теги HTML5), или Google, Yahoo и MS нарушают стандарт?
Ответы
Ответ 1
В спецификации HTML WHATWG упоминается, что элемент LINK
может иметь либо атрибут rel
:
<link rel="…" />
или itemprop
-attribute
<link itemprop="…" />
но не оба.
rel
-версия ограничена элементом HEAD
, тогда как itemprop
-версия может появляться как в HEAD
, так и BODY
-элементах.
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?
Ответ 2
Ссылка разрешена в BODY.
У меня была такая же проблема с проверкой тега ссылки в HTML5, и я решил это с помощью этого
<link rel="stylesheet" property="stylesheet" href="css/homepage.css">
Необходимо иметь теги property
и rel
ОБНОВЛЕНИЕ 2016 (спасибо yuyokk ниже):
Недавно было изменено спецификацию HTML5, которая позволяет иметь ссылки в теле
Ответ 3
Недавно было изменено на спецификацию HTML5, которая позволяет иметь ссылки в теле
Ответ 4
Я хотел бы добавить к ответам выше, короче
<body>
<link rel="stylesheet" property="stylesheet" href="pathto.css">
</body>
делает ошибку валидации. Достаточно просто добавить атрибут property=""
(синтаксис RDFa или itemprop=""
(синтаксис микроформата). @Jukka K. Korpela и @sideshowbarker объясняют в своих ответах, причина кроется в HTML5 + RDFa 1.1 spec.
Вышеприведенное решение в основном является обходным путем, позволяющим валидатору игнорировать встроенные таблицы стилей по мере необходимости в реализации критического пути.
В будущих версиях валидаторов он, надеюсь, устарел.
Кстати, в HTML5 вам не нужен атрибут type
и самозакрывающийся тег синтаксис.