Tại sao mã sau hợp lệ khi tôi đang sử dụng <div>
bên trong một <li>
?Tôi có thể sử dụng div bên trong một mục danh sách không?
<ul>
<li class="aschild">
<div class="nav">Test</div>
</li>
</ul>
Tại sao mã sau hợp lệ khi tôi đang sử dụng <div>
bên trong một <li>
?Tôi có thể sử dụng div bên trong một mục danh sách không?
<ul>
<li class="aschild">
<div class="nav">Test</div>
</li>
</ul>
Có, bạn có thể sử dụng một div bên trong một li và nó sẽ xác nhận.
<!ELEMENT li %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!ENTITY % block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
Vì <li>
là một yếu tố ngăn chặn, không phải là một phần tử nội tuyến như <span>
hoặc <a>
.
Bên trong một <li>
bạn có thể có bất kỳ thứ gì bạn có thể tự nhiên đặt bên trong một <div>
. Chúng không khác biệt theo nghĩa này.
Nó cũng phải hợp lệ trong HTML4, XHTML và HTML5.
Đây là KHÔNG hợp lệ mặc dù (vì vậy các nguồn mà bạn tìm thấy về "không divs trong danh sách" có thể tham khảo tình trạng này):
<ul>
<li></li>
<div></div>
<li></li>
</ul>
Vì vậy: Lists (ul
, ol
) chỉ có thể có li
s làm con cái của họ. Nhưng li
s có thể có bất cứ điều gì như con cái của họ.
Tại sao nó không hợp lệ. Hay cụ thể hơn, ở đâu nó nói rằng nó không phải là vallid. DTD cho phép nó? – Jawad
@Jawad Lists chỉ có thể có 'li' là con cái của chúng. Nhưng 'li' có thể có bất cứ thứ gì như con cái của họ. Tôi nghĩ rằng đây là nơi OP đã nhầm lẫn với nhau. – kapa
Bắt tuyệt vời. Chúc mừng! – Jawad
An <li>
là phần tử khối và sẽ hoạt động hoàn toàn tốt với các phần tử khối khác bên trong.
Sự cố bạn gặp phải khi bạn có mã này trong một trang? – carlosfigueira
* Có * chính xác không? – pavium
@Vimal Basdeo : Thú vị: một câu hỏi về lý do tại sao bạn không gặp sự cố. –