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

时间:2012-08-01 08:42:27

标签: html css css3

我有这段代码:

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

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

修改:此链接显示我可以http://css-tricks.com/forums/discussion/11593/divs-inside-uls/p1

6 个答案:

答案 0 :(得分:44)

没有。唯一可能是<ul>孩子的元素是<li>

HTML 4

<!ELEMENT UL - - (LI)+                 -- unordered list -->

(另见how to read a content model definition in a DTD

HTML 5

  

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

答案 1 :(得分: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)+

编辑:

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

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

答案 2 :(得分:4)

不能将div嵌套在元素内,只有&lt;李&GT;可以用作子元素。而不是在ul元素内包装div。你可以做这样的事情

<ul class="class1">
 <li class="child1">
   <ul>
     <li>item1</li>
     <li>item2</li>
     <li>item3</li>
   </ul>
 </li>
<ul> 

答案 3 :(得分:3)

没有。如果你想要有效的标记,div就不应该在里面,对不起。 一些现代浏览器将在打开div之前“自动关闭”ul标签,因此请注意

答案 4 :(得分:3)

你可以在ul-> li -> div之下使用div标签,因为你只能在ul标签后使用li标签,你的代码运行正常但是会有验证错误

所以你可以像这样使用

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

答案 5 :(得分:1)

HTML unordered list element <ul>表示无序的项目列表,即没有数字排序的项目集合,它们在列表中的顺序毫无意义。通常,无序列表项目使用子弹显示,子弹可以是几种形式,如点,圆或平方。子弹样式未在页面的HTML描述中定义,而是在其关联的CSS中使用list-style-type属性定义。

允许的内容:

zero or more <li> elements