2012-02-09 135 views
0

我试图订购一些用li标签创建的使用Dreamweaver的行。明确:在Dreamweaver中,这两项工作都做得很好,看起来很好。但是,当我确认我收到类似于这些的一些错误代码:如何修复“div”标签</li><li>标签

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/

回答

2

使用div有语义上不正确。

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

CSS伪选择器:after应该在这里为你做窍门。

或者你可以使用它的另一种变化,但我认为这是什么适合您要求的法案。

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

+0

嗨,谢谢你的提示。所有问题突然都在应用这个选择器。并且感谢knichol,我知道它与ie6和ie7不兼容。所以我只想给访问者一个关于浏览器版本的警告。 – nikel 2012-02-09 18:03:34

0

div需求是一个li标签内,如果它要成为ul标签的子

+0

感谢您的回复 – nikel 2012-02-09 18:06:10

1

你可以简单地添加style="clear:both;"<li>和删除有问题的<div>所有一起。

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

+0

感谢您的回复。我曾尝试过,但用Dreamweaver看起来不太好。所以我在这里问。 – nikel 2012-02-09 17:36:16

0

标记<li>是内联元素,<div>是块元素。

:形成单独块的元素。

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

因此理论上,内联元素中不能存在块元素。但仅在理论上,因为在实践中浏览器将此解释为正常。

提示:不要担心W3C验证!

+0

感谢您的回复 – nikel 2012-02-09 18:06:17