Apakah Anda perlu menutup tag meta dan tautan dalam HTML?

133

Saya baru saja membaca HTML seseorang yang tidak pernah menutup meta dan tag tautan di bagian kepala HTML. Kode berfungsi dengan baik; Apakah penutupan tag ini opsional?

Saya pikir itu akan salah jika tag tidak ditutup.

bcollins
sumber

Jawaban:

167

Sebuah tag harus selalu ditutup dengan simbol tag dekat >(jika kita mengabaikan aturan SGML tertentu yang nominal berlaku di non-XHTML HTML tapi tidak pernah dilaksanakan di browser).

Yang ingin Anda tanyakan adalah apakah elemen - elemen tersebut perlu ditutup oleh tag akhir. Jawabannya adalah HTML non-XHTML (termasuk HTML5 dalam serialisasi HTML), tidak ada tag akhir yang diperlukan atau diizinkan metadan linkelemen. Namun dalam praktiknya, browser hanya mengabaikan tag akhir eksplisit untuk mereka, serta kultus kargo /sebelumnya >, jika Anda menggunakannya. Dan HTML5 membuat permisif ini aturan dengan bahkan secara formal mengizinkan /serialisasi dalam HTML juga.

Dalam XHTML, aturan XML berlaku, sehingga setiap elemen, tanpa kecuali, harus memiliki tag awal dan tag akhir, tetapi tag yang sama dapat digunakan untuk kedua peran jika konten elemen kosong, misalnya <meta name="foo" content="bar"/>sebagai kependekan dari <meta name="foo" content="bar"></meta>. Jika Anda melanggar ini saat menyajikan dokumen dengan tipe konten XML (XHTML) ke browser yang sesuai, maka dokumen Anda tidak ditampilkan sama sekali; pesan kesalahan ditampilkan sebagai gantinya.

Saat menggunakan server XHTML dengan tipe konten HTML ( Content-Type: text/html), karena dokumen XHTML hampir selalu ada di web, maka browser akan benar-benar menerapkan aturan HTML non-XHTML.

Untuk meringkas:

  • biasanya, gunakan saja <meta ...>tanpa/
  • jika Anda benar-benar menggunakan XHTML dalam konteks di mana parsing XHTML benar-benar diterapkan, mainkan dengan aturan XML (dan pastikan Anda mengetahuinya)
  • jika atasan Anda menyuruh Anda menulis <meta ... /> , lakukanlah; itu tidak berguna, tetapi tidak menyebabkan kerusakan (kecuali jika Anda mencoba untuk memvalidasi misalnya terhadap HTML 4.01 doctype).
Jukka K. Korpela
sumber
3
menggunakan /> menyebabkan masalah ketika google bot tidak mengenali tag meta robots. aneh!!!
DevZer0
13
Saya menemukan istilah "pemujaan kargo" tidak sesuai dalam konteks ini. Beberapa orang menutup elemen-elemen itu, hanya karena mereka menekan XHTML yang tidak menang.
Marcus
6
Peringatan pedant! "Kultus kargo" tidak ditulis dalam praktek normal, tetapi hanya bila menggunakan seluruh frasa sebagai kata sifat untuk sesuatu yang lain (yaitu, "pemrograman pemujaan kargo", "pemujaan kargo /sebelumnya >"). Hanya berpikir saya akan mengklarifikasi untuk menghindari mengeruhkan internet dengan lebih banyak kebingungan. </pedant_alert>:)
Aaron Wallentine
1
@ DevZer0 - apakah Anda yakin tebasan adalah penyebabnya? Saya berharap Google fleksibel dengan hal-hal seperti itu.
Simon East
3
Tidakkah membuat HTML Anda konsisten dengan aturan XHTML sebagai alasan untuk menyertakan / sebelum>?
Kyle Delaney
28

Itu tergantung pada DOCTYPE. HTML5 tidak perlu ditutup. XHTML tidak.

Dalam HTML5, yang disebut elemen void (elemen yang tidak dapat memiliki konten) tidak perlu ditutup, karena mereka menutup sendiri. Tapi itu masih berlaku jika Anda menutupnya ..

Baca lebih lanjut di sini: elemen-void

Sebsemillia
sumber
4
HTML5 memiliki dua serialisasi, dan salah satunya (serialisasi XHTML) membuat tag akhir wajib.
Jukka K. Korpela