Điều này đã làm phiền tôi trong một thời gian và tôi tự hỏi liệu có sự đồng thuận nào về cách làm điều này đúng cách không. Khi tôi đang sử dụng danh sách HTML, làm thế nào để tôi bao gồm một tiêu đề cho danh sách?
Một lựa chọn là:
<h3>Fruits I Like:</h3>
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
nhưng về mặt ngữ nghĩa, <h3>
tiêu đề không được liên kết rõ ràng với<ul>
Một lựa chọn khác là:
<ul>
<li><h3>Fruits I Like:</h3></li>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
nhưng điều này có vẻ hơi bẩn, vì tiêu đề không thực sự là một trong những mục danh sách.
Tùy chọn này không được W3C cho phép:
<ul>
<h3>Fruits I Like:</h3>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
như <ul>
's chỉ có thể chứa một hoặc nhiều <li>
' s
"Danh sách tiêu đề" cũ <lh>
có ý nghĩa nhất
<ul>
<lh>Fruits I Like:</lh>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
nhưng tất nhiên nó không phải là một phần chính thức của HTML
Tôi đã nghe nó gợi ý rằng chúng tôi sử dụng <label>
giống như một hình thức:
<ul>
<label>Fruits I Like:</label>
<li>Apples</li>
<li>Bananas</li>
<li>Oranges</li>
</ul>
nhưng điều này hơi lạ và dù sao cũng sẽ không xác nhận.
Thật dễ dàng để thấy các vấn đề ngữ nghĩa khi cố gắng tạo kiểu cho các tiêu đề danh sách của tôi, nơi cuối cùng tôi cần đặt <h3>
các thẻ của mình trong đầu tiên <li>
và nhắm mục tiêu chúng để tạo kiểu với một cái gì đó như:
ul li:first-of-type {
list-style: none;
margin-left: -1em;
/*some other header styles*/
}
kinh hoàng! Nhưng ít nhất theo cách này tôi có thể kiểm soát toàn bộ <ul>
, tiêu đề và tất cả, bằng cách tạo kiểu cho ul
thẻ.
cách chính xác để làm điều này là gì? Có ý kiến gì không?