如何修复标签之间的"div"标签 </li> <li>



我正在尝试使用Dreamweaver订购使用li标记创建的一些行。清楚:两者都做得很好,在Dreamweaver中看起来也不错。但当我验证代码时,我会收到一些类似的错误:

Line 65, Column 53: document type does not allow element "div" here; assuming missing "li" start-tag
<div style="clear: both; background: none; "></div>
Line 73, Column 12: document type does not allow element "li" here; missing one of "ul", "ol", "menu", "dir" start-tag
<li>

我的代码在这里:http://sudrap.org/paste/text/90799/

使用div在语义上是不正确的。

ulol元素只能将li的作为子节点。li可能有其他类型的元素。

CSS伪选择器:after应该在这里为您完成任务。

或者你可以使用它的另一种变体,但我认为它符合你的要求。

试试这个:li:after {clear: both; }

您可以简单地将style="clear:both;"添加到<li>中,然后一起删除有问题的<div>

我不建议使用CSS li:after {},因为该选择器不兼容跨浏览器。

标签<li>是一个内联元素,<div>是一个块元素。

:形成单独块的元素。

inline:一个与其余内容保持内联的元素。

因此,从理论上讲,内联元素中不可能存在块元素。但这只是理论上的,因为在实践中浏览器会将其解释为正常情况。

提示:不用担心W3C的验证!

div如果要成为ul标签的子标签,则需要位于li标签内

最新更新