24

私はレガシーアプリを維持していて、次のコードに出くわしました:

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

divタグを要素の子要素として見たことはありませんul。HTML はブラウザーで適切にレンダリングされます。

これは有効な HTML ですか? 私の直感では、これは奇妙な使い方です。しかし、おそらくこれは完全に正常で有効ですか?div要素内に要素をネストすることはul適切な使用法ですか? これに賛成ですか反対ですか?

4

3 に答える 3

17

HTML のどのバージョンでも有効ではありません。例えばHTML 4.01 onulを参照してください。

ただし、ブラウザーはそれを許可し、それを解析してdivの子にulします。スタイルも設定divできます。これがおそらく、このマークアップが使用された理由です。

于 2012-09-03T04:55:20.477 に答える
7

HTML順序なしリスト要素( <ul>) は、項目の順序なしリスト、つまり、番号順を持たない項目のコレクションを表し、リスト内の順序は無意味です。通常、順序付けられていないリスト項目は黒丸で表示されます。黒丸は、ドット、円、または四角形など、いくつかの形式にすることができます。箇条書きのスタイルは、ページの HTML 記述では定義されませんが、関連する CSS では list-style-type プロパティを使用して定義されます。

許可されたコンテンツ

0 個以上の<li>要素。最終的に<ol>and<ul>要素と混合されます。

使用例:

<ul>
  <li>first item</li>
  <li>second item</li>
  <li>third item</li>
</ul>

<div>次のように内部<li>タグを使用できます。

<ul>
  <li>first item</li>
  <li>second item</li>
  <li>
      third item
      <div>Third Item Contente</div>
  </li>
</ul>
于 2012-09-03T05:08:56.900 に答える
6

http://validator.w3.org/を使用して確認できます。
エラー:
1.ドキュメント タイプは、ここで要素「DIV」を許可しません。「LI」開始タグが欠落していると仮定し
ます 2.ドキュメントタイプは、ここで要素「LI」を許可しません。「UL」、「OL」開始タグのいずれかが欠落している

The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.  

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").
于 2012-09-03T05:05:28.353 に答える