2011-06-23 12 views

Odpowiedz

48

Tak, możesz użyć elementu div wewnątrz li i to się sprawdzi.

<!ELEMENT li %Flow;> 
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*"> 
<!ENTITY % block  "p | %heading; | div | %lists; | %blocktext; | fieldset | table"> 
+4

Czy możesz wyjaśnić, co oznacza powyższy blok kodu? Dzięki. – yochannah

+3

@yochannah: To tylko DTD. Jest to teraz nieistotne, ponieważ HTML5 nie jest już oparty na DTD. http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd – Jawad

+5

Co to jest HTML5 na podstawie teraz? – Crimbo

9

Ponieważ <li> jest elementem blok, a nie elementu liniowego jak <span> lub <a>.

4

Tak, możesz. Tyle ile chcesz.

+1

Jestem przekonany. – redolent

31

Wewnątrz <li> możesz mieć wszystko, co możesz naturalnie umieścić wewnątrz <div>. Nie różnią się w tym sensie.

Powinien być również poprawny w HTML4, XHTML i HTML5.

To NIE ważne choć (tak źródła ty znaleziono o "bez div w listach" może odnosić się do tej sytuacji):

<ul> 
    <li></li> 
    <div></div> 
    <li></li> 
</ul> 

Więc: Listy (ul, ol) może tylko mają li s jako dzieci. Ale li s może mieć wszystko, co ich dzieci.

+0

Dlaczego jest nieprawidłowy. Lub bardziej szczegółowo, gdzie mówi, że nie jest vallid. DTD na to pozwala? – Jawad

+5

@Jawad Listy mogą mieć tylko 'li's jako swoje dzieci. Ale 'li's może mieć wszystko jako swoje dzieci. Myślę, że właśnie w tym przypadku PO pomył jeden z drugim. – kapa

+0

Świetny połów. Twoje zdrowie! – Jawad

7

<li> jest element blokowy i działa perfekcyjnie innych elementów bloku do wewnątrz.