Baru-baru ini saya menemukan bahwa mungkin ada cara baru untuk berkomentar di HTML5.
Alih-alih <!-- -->
komentar multi-line khas yang saya baca, saya pikir saya perhatikan bahwa IDE saya membuat <!div >
komentar reguler . Jadi saya mengujinya, dan saya terkejut Chrome berkomentar tag itu. Itu hanya mengomentari tag dan bukan isi div, jadi saya harus berkomentar lebih dekat <!/div>
untuk menghindari menutup div lain.
Saya menguji yang lain dan tampaknya secara umum menempatkan tanda seru di depan setiap pembukaan tag, simbol ini <
, membuat tag itu dikomentari.
Apakah ini benar-benar baru? Apakah ini praktik yang buruk? Ini sebenarnya sangat nyaman, tetapi apakah masih praktis (jika bukan baru)?
Edit detail tambahan: Meskipun kesalahan sintaksis atau kesalahan interpretasi dari sintaksis khusus ini adalah alasan yang bagus, mengapa Chrome benar-benar menjadikannya sebagai komentar lengkap?
Kode ini ditulis sebagai :
<!div displayed> some text here that is still displayed <!/div>
Dan kemudian diterjemahkan sebagai :
<!--div displayed--> some text here that is still displayed <!--/div-->
Jawaban:
Tidak ada standar baru untuk komentar dalam HTML5. Sintaks komentar yang valid masih
<!-- -->
. Dari bagian 8.1.6 dari W3C HTML5 :The
<!
sintaks berasal di SGML DTD markup, yang bukan bagian dari HTML5. Dalam HTML5, disediakan untuk komentar, bagian CDATA, dan deklarasi DOCTYPE. Oleh karena itu apakah alternatif ini adalah praktik yang buruk tergantung pada apakah Anda menganggap penggunaan (atau lebih buruk, ketergantungan pada) markup usang menjadi praktik yang buruk.Validator.nu menyebut apa yang Anda miliki "komentar Bogus." - yang artinya diperlakukan seperti komentar meskipun itu bukan komentar yang valid. Ini mungkin untuk kompatibilitas ke belakang dengan pra-HTML5, yang berbasis SGML, dan memiliki deklarasi markup yang mengambil formulir
<!FOO>
, jadi saya tidak akan menyebut ini baru. Alasan mereka diperlakukan seperti komentar ini karena deklarasi SGML markup yang deklarasi khusus tidak dimaksudkan untuk diberikan, tapi karena mereka tidak ada artinya di HTML5 (dengan pengecualian atas), sejauh HTML5 DOM yang bersangkutan mereka yang tidak lebih dari komentar .Langkah-langkah berikut dalam bagian 8.2.4 mengarah ke kesimpulan ini, yang tampaknya diikuti oleh Chrome pada surat itu:
8.2.4.1 Status data :
8.2.4.8 Tag status terbuka :
8.2.4.45 Status terbuka deklarasi markup :
Perhatikan bahwa ia mengatakan untuk beralih ke keadaan mulai komentar hanya jika urutan karakter yang ditemui adalah
<!--
, jika tidak, itu adalah komentar palsu. Ini mencerminkan apa yang dinyatakan dalam bagian 8.1.6 di atas.8.2.4.44 Status komentar Bogus :
Dalam bahasa Inggris yang sederhana, ini berubah
<!div displayed>
menjadi<!--div displayed-->
dan<!/div>
menjadi<!--/div-->
, persis seperti yang dijelaskan dalam pertanyaan.Pada catatan akhir, Anda mungkin bisa mengharapkan parser yang mematuhi HTML5 berperilaku sama dengan Chrome.
sumber
Saya tidak berpikir ini adalah kebiasaan yang baik untuk diambil karena
<!
singkatan dari deklarasi markup suka<!DOCTYPE
. Jadi Anda pikir itu dikomentari (well ... browser akan mencoba menafsirkannya).Bahkan jika itu tidak muncul, ini tampaknya bukan sintaks yang benar untuk mengomentari kode HTML.
sumber