Bisakah saya menggunakan tag <link> di badan dokumen HTML?

20

Bisakah saya menggunakan <link>tag di badan halaman HTML? Saya mencoba menemukan jawaban untuk pertanyaan ini, tetapi menemukan informasi yang bertentangan.

Saat menambahkan markup mikrodata Schema.org ke halaman HTML, saya ingin menambahkan info kanonik dalam tag tautan seperti ini:

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

Saya mendapatkan contoh kode di atas dari Schema.org . Menurut mereka, ini adalah cara untuk mencari orang yang ingin menambahkan referensi kanonik ke itemprop, tetapi tidak ingin menempatkan hyperlink di situs web mereka.

Namun W3 dengan jelas menyatakan bahwa <link>tag hanya boleh ditempatkan di bagian kepala, sehingga membuat contoh Schema.org tidak valid.

Jika saya ingin tetap memperbaiki markup, saran mana yang harus saya ikuti?

Edward Touw
sumber
Anda menautkan ke w3schools.com (yang tidak ada hubungannya dengan W3C), bukan w3.org .
unor
Ah, ya tentu saja, Anda benar. Menghapus tautan ke W3schools. Terima kasih.
Edward Touw
Inilah yang terjadi pada SEO: webmasters.googleblog.com/2013/04/...
Faiz

Jawaban:

23

Microdata memperluas HTML5 dengan cara yang linkdan metaelemen dapat digunakan di body, jika mengandung itempropatribut.

Jika itempropatribut ada pada linkatau meta, mereka mengalir konten dan konten ungkapan. The linkdan metaelemen dapat digunakan di mana konten ungkapan diharapkan jika itempropatribut hadir.

Ekstensi ini saat ini juga termasuk dalam HTML 5.1 Nightly (Rancangan Editor) (lihat linkelemen dan metaelemen ). Tetapi ketika spesifikasi Microdata menjadi W3C Note baru-baru ini, kita harus melihat apa yang terjadi dengan referensi ini.

RDFa 1.1 memperluas HTML5 dengan cara yang linkdan metaelemen dapat digunakan di body, jika mengandung propertỳatribut.

Jika @propertyatribut RDFa ada pada elemen linkatau meta, mereka HARUS dipandang sesuai jika digunakan dalam bodydokumen. Lebih khusus lagi, ketika linkatau metaelemen mengandung @propertyatribut RDFa dan digunakan dalam bodydokumen HTML5, mereka HARUS dianggap sebagai konten mengalir.


Jadi, Anda tidak diperbolehkan menggunakan elemen apa pun link (mis., <link href="" rel="" />) Di dalam body, tetapi hanya elemen yang memiliki itempropatribut (untuk Microdata). sebuah propertyatribut (untuk RDFa).

Dengan demikian linkelemen Anda dapat digunakan di body:

<body>
<!-- … -->
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>
unor
sumber
Terima kasih! Jadi jika saya mengerti dengan benar, saya diizinkan untuk menggunakan <link>tag di badan selama mengandung atribut itemprop? Dan selama atribut itemprop disertakan, saya juga dapat memasukkan hrefseperti yang digunakan dalam pertanyaan awal saya?
Edward Touw
@EdwardTouw: Ya; Anda HARUS memberikan hrefatribut dalam hal apa pun. Jadi selama linkelemen memiliki itempropatribut, Anda dapat menggunakannya di body. Maka itu bukan lagi metadata untuk seluruh dokumen (seperti itu akan menjadi kasus untuk linkelemen biasa di head), tetapi elemen "tersembunyi" untuk Microdata.
unor
11

W3Schools tidak menetapkan standar industri pada pengkodean HTML. Mereka hanyalah situs referensi pihak ke-3 yang tidak berafiliasi dengan W3C . W3Schools dan situs lainnya sering salah ketika menggunakan teknologi pengkodean canggih seperti Skema dan desain Responsif . Saat menggunakan kode yang cukup baru, one stop shop Anda harus W3C sebagai standar kepatuhan yang ditetapkan, dan mungkin HTML5 Doctor jika Anda memerlukan bantuan untuk memahami HTML5 melalui mereka yang tidak resmi tetapi sangat dihormati.

Melihat kode Anda, ini melewati validasi W3C tanpa masalah dengan elemen tautan yang terkandung di dalamnya<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>

JAWABAN SINGKAT: Ya, Anda dapat menggunakan di<LINK>dalam<body> </body>tetapi seperti yang Unor katakan dalam jawabannya harus menyertakan itemprop.

Simon Hayter
sumber
Perhatikan bahwa Anda menautkan ke konsep HTML5 dari 2009. Dalam HTML5 CR saat ini definisi yang relevan tidak termasuk.
unor
0

Elemen tautan dapat ditambahkan ke badan dokumen HTML jika itempropatributnya ada. Ini demo .

Juga inilah contoh atribut tautan itemprop .

Daniel
sumber
2
Jika ini adalah tautan ke situs Anda, harap tambahkan penafian seperti "Saya bahas ini di blog saya di sini ...".
dan