我有这个代码:
<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>.
<!ELEMENT UL - - (LI)+ -- unordered list -->
Run Code Online (Sandbox Code Playgroud)
(另请参阅如何在DTD中读取内容模型定义)
内容模型:零个或多个li元素.
对于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
您可以在这样的情况下使用 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)