我可以使用div作为UL的直接孩子吗?

Roc*_*ngh 43 html css css3

我有这个代码:

<ul>
    <div>
   </div>
</ul>
Run Code Online (Sandbox Code Playgroud)

我觉得我的浏览器渲染它没有问题.我已经在某处读到了这个'li'应该只用作'ul'的直接孩子.它是否正确?我不能使用div作为UL的直接孩子吗?是否有任何关于上述混淆的文件?

编辑:此链接说我可以http://css-tricks.com/forums/discussion/11593/divs-inside-uls/p1

Que*_*tin 46

不,可能是孩子的唯一因素<ul><li>.

HTML 4:

<!ELEMENT UL - - (LI)+                 -- unordered list -->
Run Code Online (Sandbox Code Playgroud)

(另请参阅如何在DTD中读取内容模型定义)

HTML 5:

内容模型:零个或多个li元素.

  • @RockySingh这是隐含的,否则会提到其他有效的孩子. (3认同)

Shi*_*ryu 6

对于HTML 5:

http://www.w3.org/TR/html-markup/ul.html

允许的内容

零个或多个li元素

对于HTML 4:

http://www.w3.org/TR/html401/struct/lists.html#h-10.2

<!ELEMENT UL - - (LI)+
Run Code Online (Sandbox Code Playgroud)

编辑:

我忘记了其他的HTML5:D(它与W3C的规格相同)

http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-ul-element


jit*_*ney 5

您可以在这样的情况下使用 div 标签, ul-> li -> div因为您只能在 ul 标签后使用 li 标签,您的代码将运行良好但会出现验证错误

所以你可以像这样使用

 <ul>
     <li>
         <div></div>
     </li>
 </ul>
Run Code Online (Sandbox Code Playgroud)


小智 5

否 div 不能嵌套在元素内,只有 < li> 可以用作子元素。而不是将 div 包裹在 ul 元素中。你可以做这样的事情

<ul class="class1">
 <li class="child1">
   <ul>
     <li>item1</li>
     <li>item2</li>
     <li>item3</li>
   </ul>
 </li>
<ul> 
Run Code Online (Sandbox Code Playgroud)