Ini telah mengganggu saya untuk sementara waktu, dan saya bertanya-tanya apakah ada konsensus tentang bagaimana melakukan ini dengan benar. Saat saya menggunakan daftar HTML, bagaimana cara menyertakan header untuk daftar secara semantik?
Salah satu opsinya adalah ini:
<h3>Fruits I Like:</h3>
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
tetapi secara semantik, <h3>
tajuk tidak secara eksplisit dikaitkan dengan<ul>
Opsi lainnya adalah ini:
<ul>
<li><h3>Fruits I Like:</h3></li>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
tetapi ini tampaknya agak kotor, karena judulnya sebenarnya bukan salah satu item daftar.
Opsi ini tidak diperbolehkan oleh W3C:
<ul>
<h3>Fruits I Like:</h3>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
sebagai <ul>
's hanya dapat berisi satu atau lebih <li>
' s
"Judul daftar" lama <lh>
paling masuk akal
<ul>
<lh>Fruits I Like:</lh>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
tapi tentu saja ini bukan bagian resmi dari HTML
Saya pernah mendengarnya menyarankan agar kami menggunakan <label>
seperti formulir:
<ul>
<label>Fruits I Like:</label>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
tapi ini agak aneh dan toh tidak akan valid.
Sangat mudah untuk melihat masalah semantik saat mencoba memberi gaya pada tajuk daftar saya, di mana saya akhirnya harus meletakkan <h3>
tag saya di bagian pertama <li>
dan menargetkannya untuk penataan dengan sesuatu seperti:
ul li:first-of-type {
list-style: none;
margin-left: -1em;
/*some other header styles*/
}
kengerian! Tapi setidaknya dengan cara ini saya bisa mengontrol keseluruhan <ul>
, heading dan semuanya, dengan memberi style pada ul
tag.
Apa cara yang benar untuk melakukan ini? Ada ide?