Це мене турбує вже деякий час, і мені цікаво, чи є консенсус щодо того, як це зробити правильно. Як я використовую список HTML, як я семантично включати заголовок до списку?
Один з варіантів такий:
<h3>Fruits I Like:</h3>
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
але семантично <h3>
заголовок прямо не пов'язаний з<ul>
Ще один варіант:
<ul>
<li><h3>Fruits I Like:</h3></li>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
але це здається трохи брудним, оскільки заголовок насправді не є одним із пунктів списку.
Ця опція заборонена W3C:
<ul>
<h3>Fruits I Like:</h3>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
як <ul>
's може містити лише одне або більше <li>
' s
Стара "заголовок списку" <lh>
має найбільш сенс
<ul>
<lh>Fruits I Like:</lh>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
але звичайно це офіційно не є частиною HTML
Я чув, що це пропонувало нам використовувати <label>
як форму:
<ul>
<label>Fruits I Like:</label>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
але це трохи дивно і все одно не буде підтверджено.
Легко побачити семантичні проблеми, намагаючись стилізувати заголовки списків, де мені в кінцевому підсумку потрібно помістити свої <h3>
теги в перше <li>
і націлити їх на стилізацію з чимось на зразок:
ul li:first-of-type {
list-style: none;
margin-left: -1em;
/*some other header styles*/
}
жахи! Але принаймні таким чином я можу контролювати весь <ul>
, заголовок та все, стилюючи ul
тег.
Який правильний спосіб це зробити? Будь-які ідеї?