CSS验证问题:标签中不允许使用div元素

时间:2013-03-05 13:20:27

标签: html css validation

验证HTML后,我收到此错误。

第18行,第60列:文档类型不允许元素“div”在这里;缺少“object”,“applet”,“map”,“iframe”,“button”,“ins”,“del”start-tag

 <a href="index.html"><div class="item" id="home"><br />

我认为我说我不允许在'a'标签中使用DIV,但我必须使用一个层,如果不是div,以获得所需的视图。我可以用什么代替div?

错误消息包括以下行:

此消息的一个可能原因是您尝试将块级元素(例如“

”或“”)放入内联元素(例如“”,“”,或“”)。

我收到该行的另一条错误消息:

<a class="img" href="#"><li>Item 1</li></a>

我认为我无法在<li> </li>标记内使用<a> </a>标记,但在这种情况下我必须,您有什么建议?

3 个答案:

答案 0 :(得分:3)

使用<span>代替,这是合法的。

答案 1 :(得分:2)

<span><div>之间的唯一区别是默认情况下<span>display:inline;元素,而<div>display:block; }默认情况下的元素。

您希望在内联元素(<a>)中使用内联元素,因为在其中包含块元素没有意义。内联元素继续页面的“流”,而块元素则打破流(即转到下一行)。

通常在这些情况下,您可以毫无问题地使用<span>

编辑:让<a>元素生成display:block;也可以解决您的问题。

编辑:在<li>代码中包含<a>实际上不是有效的HTML,它们必须位于<ul>或{{1 }}

以下是一些可以正常使用的选项,无需额外的CSS。

<ol>

或者

<a class="img" href="#">
    <span>Item 1</span>
</a>

或者

<div>
    <a class="img" href="#">Item 1</a>
</div>

答案 2 :(得分:0)

验证的唯一方法是将文档类型更改为HTML5,如上一篇文章中所述:

Valid HTML: ul, p, div inside 'a' element

希望这有帮助。