이것은 한동안 나를 괴롭 혔고, 이것을 올바르게 수행하는 방법에 대한 합의가 있는지 궁금합니다. 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>
하나 이상의 <li>
의 만 포함될 수 있으므로
오래된 "목록 제목" <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
.
이를 수행하는 올바른 방법은 무엇입니까? 어떤 아이디어?