2011-06-23 8 views
43

<li>の中に<div>を使用しているときに、次のコードが有効なのはなぜですか?リスト項目内でdivを使用できますか?

<ul> 
    <li class="aschild"> 
     <div class="nav">Test</div> 
    </li> 
</ul> 
+3

このコードをページに含めると、どのような問題が発生しますか? – carlosfigueira

+0

*正しいですか? – pavium

+6

@Vimal Basdeo :興味をそそること:あなたはなぜ問題がないのかという質問。 –

答えて

48

はい、liの内部でdivを使用すると、検証されます。

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

上記のコードブロックが実際に意味するものを詳しく説明できますか?ありがとう。 – yochannah

+3

@yochannah:これは単なるDTDです。 HTML5はもはやDTDベースではなくなって以来、これは無益です。 http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd – Jawad

+5

HTML5は現在何をベースにしていますか? – Crimbo

9

<li>はブロック要素ではなく、<span>又は<a>ようなインライン要素であるため。

4

はい、できます。あなたが好きなだけ。

+1

私は確信しています。 – redolent

31

<li>の中には、<div>の中に自然に入れることができるものがあります。この意味で違いはありません。

HTML4、XHTML、HTML5でも有効です。だから、

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

これはませ有効なものの(このような状況を参照することができ、あなたが「リストに無いのdiv」について見つかったので、ソース)であるリスト(ulol)することができますがのみ子としてliがあります。しかし、liは子として何かを持つことができます。

+0

なぜ有効ではありません。またはより具体的には、それはどこかではないと言います。 DTDはそれを可能にしますか? – Jawad

+5

@Jawadリストは子として 'li'しか持てません。しかし、「リ」は子供として何かを持つことができます。私はこれがOPが誤ったものだと思う。 – kapa

+0

大きなキャッチ。乾杯! – Jawad

7

<li>はブロック要素であり、内部の他のブロック要素と完全に正常に動作します。

関連する問題