我正在尝试使用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>
答案 0 :(得分:2)
使用div
语义不正确。
ul
和ol
元素只能将li
作为子节点。 li
可能有其他类型的元素。
CSS伪选择器:after
应该在这里为你做好准备。
或者你可以使用它的另一种变体,但我认为这符合你要求的费用。
试试这个:
li:after {clear: both; }
答案 1 :(得分:1)
您只需将style="clear:both;"
添加到<li>
,然后一起删除有问题的<div>
。
我不建议使用CSS li:after {}
,因为该选择器不兼容跨浏览器。
答案 2 :(得分:0)
div
如果要成为li
代码
ul
代码内
答案 3 :(得分:0)
标记<li>
是内联元素,<div>
是块元素。
阻止:形成单独块的元素。
内嵌:与内容的其余部分保持内联的元素。
因此,从理论上讲,内联元素中不存在块元素。但理论上只是因为在实践中,浏览器将此解释为正常。
提示:不要担心W3C验证!