验证器错过了一个标签,但它就在那里!

时间:2010-11-29 12:57:22

标签: html html5 validation

我有以下标记:

<footer>
    <p id="foo">
        &copy;Copyright. <address><a href="" title="Web Development">Me</a></address>. Todos os direitos reservados.
    </p>
</footer>

但是W3 Validator(HTML 5)说:

Error Line 81, Column 20: No p element in scope but a p end tag seen.

                </p>

我有一个p标签。怎么了? 谢谢。

3 个答案:

答案 0 :(得分:14)

  

问题:<p>不能包含<address>

您可以在<p>内嵌套<address><address>块仅表示在其中找到地址信息。它不需要紧紧包裹在地址本身周围。

http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-address-element

答案 1 :(得分:2)

布局问题:

为什么要使用像'p或'div这样的包装来进行布局编码呢?作为块级元素,您可以直接使用'adress作为容器框,并根据需要使用任何CSS格式化它。保持代码简洁。

语义问题:

你也不需要为语义包装'p',因为'地址已经非常好地解释了它的内容。只需使用它; - )

语法问题:

是的,其他答案是正确的: 'p仅包含合法内联/内联块元素,不允许块级元素

答案 2 :(得分:-4)

这可能是因为您使用的是HTML5标签(W3c尚未完成)。因此,只需使用div来维护交叉浏览问题。