Kann ich <link> -Tags im Hauptteil eines HTML-Dokuments verwenden?

20

Kann ich <link>Tags im Textkörper einer HTML - Seite? Ich habe versucht, die Antwort auf diese Frage zu finden, fand aber widersprüchliche Informationen.

Wenn Sie Schema.org-Mikrodaten-Markup zu einer HTML-Seite hinzufügen, möchten Sie einem Link-Tag wie folgt kanonische Informationen hinzufügen:

<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>

Ich habe den obigen Beispielcode von Schema.org erhalten . Dies sei der richtige Weg für Leute, die einen kanonischen Verweis auf ein Itemprop einfügen möchten, aber keinen Hyperlink auf ihre Website setzen möchten.

W3 gibt jedoch deutlich an, dass <link>Tags nur innerhalb des head-Abschnitts platziert werden sollten, wodurch das Schema.org-Beispiel ungültig wird.

Wenn ich mich an die korrekte Auszeichnung halten möchte, welchen Rat sollte ich befolgen?

Edward Touw
quelle
Sie verlinken auf w3schools.com (was nichts mit dem W3C zu tun hat), nicht auf w3.org .
oder
Ah ja natürlich hast du recht. Der Link zu W3schools wurde entfernt. Vielen Dank.
Edward Touw
Folgendes passiert mit SEO: webmasters.googleblog.com/2013/04/…
Faiz

Antworten:

23

Microdata erweitert HTML5 so, dass linkund metaElemente im verwendet werden können body, wenn sie ein itempropAttribut enthalten .

Wenn das itempropAttribut in linkoder vorhanden ist meta, handelt es sich um Textflussinhalte und Phrasierungsinhalte. Die Elemente linkund metakönnen verwendet werden, wenn der Inhalt der Formulierung erwartet wird, wenn das itempropAttribut vorhanden ist.

Diese Erweiterung ist derzeit auch im HTML 5.1 Nightly (Editor's Draft) enthalten (siehe linkElement und metaElement ). Da die Microdata-Spezifikation kürzlich zu einem W3C-Hinweis wurde , müssen wir sehen, was mit dieser Referenz passiert.

RDFa 1.1 erweitert HTML5 so, dass linkund metaElemente in verwendet werden können body, wenn sie ein propertỳAttribut enthalten .

Wenn das @propertyRDFa-Attribut für das linkoder meta-Element vorhanden ist, MÜSSEN sie als konform angesehen werden, wenn sie im bodydes Dokuments verwendet werden. Insbesondere wenn linkoder metaElemente das RDFa- @propertyAttribut enthalten und in bodyeinem HTML5-Dokument verwendet werden, MÜSSEN sie als Flussinhalt betrachtet werden.


Sie sind also nicht verwenden darf jedes link Element ( zum Beispiel <link href="" rel="" />) in der body, sondern nur diejenigen mit einem itempropAttribut (für Mikrodaten) resp. ein propertyAttribut (für RDFa).

So kann Ihr linkElement in folgenden Bereichen verwendet werden body:

<body>
<!-- … -->
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>
unor
quelle
Vielen Dank! Wenn ich das richtig verstehe, darf ich das <link>Tag im Body verwenden, solange es ein itemprop-Attribut enthält? Und solange das itemprop-Attribut enthalten ist, kann ich auch so aufnehmen, hrefwie es in meiner ursprünglichen Frage verwendet wurde?
Edward Touw
@ EdwardTouw: Ja; Sie MÜSSEN hrefauf jeden Fall das Attribut angeben . Solange das linkElement ein itempropAttribut hat, können Sie es in der body. Dann handelt es sich nicht mehr um Metadaten für das gesamte Dokument (wie es bei üblichen linkElementen in der der Fall wäre head), sondern um ein "verstecktes" Element für Mikrodaten.
oder
11

W3Schools setzt keine Industriestandards für HTML-Codierung. Es handelt sich lediglich um eine Referenzseite eines Drittanbieters, die in keiner Weise mit dem W3C verbunden ist. W3Schools und andere Websites sind häufig falsch, wenn sie modernste Codierungstechnologien wie Schema und Responsive Design verwenden . Wenn Sie relativ neuen Code verwenden, sollte Ihr One-Stop-Shop W3C sein , um die Compliance-Standards festzulegen, und vielleicht HTML5 Doctor, wenn Sie Hilfe zum Verständnis von HTML5 benötigen, weil diese nicht offiziell sind, aber hoch angesehen werden.

Wenn Sie Ihren Code betrachten, besteht er die W3C-Validierung ohne Probleme mit dem in der enthaltenen Link-Element<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>

KURZE ANTWORT: Ja, Sie können<LINK>innerhalb verwenden,<body> </body>aber wie Unor in seiner Antwort erwähnt hat, muss itemprop enthalten sein.

Simon Hayter
quelle
Beachten Sie, dass Sie auf einen HTML5-Entwurf aus dem Jahr 2009 verlinken. In der aktuellen HTML5-CR ist die entsprechende Definition nicht enthalten.
oder
0

Das Link-Element kann dem Hauptteil eines HTML-Dokuments hinzugefügt werden, wenn das itempropAttribut vorhanden ist. Hier ist eine Demo .

Hier ist auch ein Beispiel für das Attribut link itemprop .

Daniel
quelle
2
Wenn dies Links zu Ihrer Website sind, fügen Sie bitte einen Haftungsausschluss wie "Ich habe dies in meinem Blog hier behandelt ..." hinzu.
Dan