W3验证错误,锚标记中的嵌套标记

时间:2015-02-04 17:33:27

标签: html css w3c-validation

我的页面中有以下html代码:

<a class="fancybox" href="best-price.php">
<div id="bestprice">
</div><!--visitorinfo-->
</a>

在验证器上,我有以下消息:

<div id="bestprice">
  

上述元素不允许出现在上下文中   你放了它;其他提到的元素是唯一的元素   都允许在那里,并可以包含提到的元素。这个   可能意味着你需要一个包含元素,或者你可能需要   忘记关闭上一个元素。

     

此消息的一个可能原因是您试图放置   内联级元素(例如&#34; <p>&#34;或&#34; <table>&#34;)内联内部   元素(例如&#34; <a>&#34;,&#34; <span>&#34;或&#34; <font>&#34;)。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

在HTML5之前,您无法在<div>标记内添加<a>标记用于doctypes。但你可以这样做。

<a class="fancybox" href="best-price.php">
   <span id="bestprice">
   </span>
</a>

4.01过渡期: http://validator.w3.org/#validate_by_input

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -->
<head>
<title>test</title>
</head>
<body>
<a class="fancybox" href="best-price.php">
   <span id="bestprice">
   </span>
</a>
</body>
</html>

HTML5: http://validator.w3.org/#validate_by_input

<!DOCTYPE html>
<head>
<title>test</title>
</head>
<body>
<a class="fancybox" href="best-price.php">
    <span id="bestprice">
    </span>
</a>
</body>
</html>

注意:正如Rob在评论中提到的那样。这,

<a class="fancybox" href="best-price.php">
    <div id="bestprice">
    </div>
</a>

将在HTML5中验证,但不会在较旧的doctypes中验证。

答案 1 :(得分:1)

使用<span>替换<div>

<a class="fancybox" href="best-price.php">
    <span id="bestprice">
        blabla
    </span><!--visitorinfo-->
</a>

添加CSS,使其像块元素一样:

#bestprice {
    display: block;
}