2011-06-23 30 views

Trả lời

48

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"> 
+4

Bạn có thể giải thích những gì khối mã trên thực sự có nghĩa là gì? Cảm ơn. – yochannah

+3

@yochannah: Đó chỉ là DTD. Bây giờ nó không được quan tâm vì HTML5 không còn dựa trên DTD nữa. http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd – Jawad

+5

HTML5 dựa trên những gì bây giờ? – Crimbo

9

<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>.

4

Có, bạn có thể. Nhiều như bạn muốn.

+1

Tôi bị thuyết phục. – redolent

31

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ọ.

+0

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

+5

@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

+0

Bắt tuyệt vời. Chúc mừng! – Jawad

7

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.

Các vấn đề liên quan