tl; dr
Beberapa program yang banyak digunakan, yang menghasilkan html, hanya akan menghasilkan tag paragraf pembuka, dan tidak menutupnya, dengan asumsi bahwa browser akan menutup paragraf dengan benar.
Secara sepintas, menurut saya asumsi bahwa browser akan menutup paragraf dengan benar adalah tidak benar. Apakah interpretasi saya benar? Secara umum, pengorbanan apa yang terlibat dalam keputusan semacam ini?
Menjelajahi kode sumber moinmoin, baris kode berikut menarik perhatian saya:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( sumber )
Setelah membaca melalui sisa implementasi, saya meyakinkan diri sendiri bahwa ya, memang, ketika moinmoin menghasilkan kode html untuk salah satu halamannya, itu akan dengan benar menghasilkan tag pembuka paragraf, jika perlu, sementara pada saat yang sama sengaja menghindari salah satu tag penutup paragraf (meskipun bisa dengan sepele melakukannya).
Untuk kasus penggunaan khusus saya, yang agak tidak biasa, perilaku ini tidak benar. Saya tergoda untuk mengirim laporan bug dan / atau mengubah perilaku. Namun, sepertinya keputusan desain ini dibuat dengan bijaksana. Saya tidak cukup berpengalaman dalam seluk-beluk standar html, atau berbagai implementasi browser, untuk dapat mengetahui apakah ini perilaku yang benar secara umum, dan saya merasa bahwa naluri saya untuk memperbaiki / mengubah perilaku ini mungkin sesat.
Apakah kode ini membuat asumsi yang valid tentang implementasi browser? Apakah html yang dihasilkan valid? Secara umum, pengorbanan apa yang mungkin saya lewatkan di sini?
sumber
Jawaban:
Tag akhir untuk
p
elemen bersifat opsional dalam HTML, dan hanya diperlukan dalam XHTML. Namun, konsep HTML5 memperkenalkan serangkaian kondisi ketikap
tag akhir sebenarnya opsional:Yang mengatakan, satu-satunya argumen yang pernah saya dengar untuk menghilangkan tag akhir untuk
p
elemen adalah ukuran dokumen. Anda sepenuhnya memutuskan apakah itu masuk akal untuk dokumen Anda atau tidak. Secara pribadi saya cenderung menyertakan semua tag akhir opsional, kalau-kalau saya tidak memenuhi persyaratan ketika tag akhir opsional.sumber
<li>
tag, tag bertindak lebih seperti poin-poin.The spesifikasi W3C HTML5 secara khusus menyatakan bahwa:
Jadi pada dasarnya spek telah menyediakan banyak cara dimana kompleksitas (besar atau kecil yang mungkin terjadi) dari penutupan tag dapat dihindari. Setiap implementasi browser yang sesuai harus mengakomodasi pengecualian ini.
sumber