当我在<span>中放置<p>时,为什么会导致错误?

时间:2017-03-09 21:38:45

标签: html font-awesome

我工作正常但是通过验证器(validator.w3.org)放置代码会出现错误

  

错误:在此上下文中,元素p不允许作为元素跨度的子元素。 (抑制此子树中的更多错误。)

<!-- mobile button -->
<a class="btn btn-warning lg hidden-sm hidden-md hidden-lg"  role="button" href="http://www.website.com">
    <span>
        <i class="fa fa-shopping-cart fa-pull-left black" aria-hidden="true"></i>
        <p class="black">Visit Store</p>
    </span>
</a>

4 个答案:

答案 0 :(得分:1)

您不希望在'inline'元素中包含'block'元素。该<p>标记可能是由span或其他内联元素组成的。

答案 1 :(得分:1)

正如错误所述,<p>不是<span>的有效子项。 <p>级元素,<span>内嵌元素。您不能在内联元素中包含块元素。

反转您的两个代码,或在<span>内使用<span>

有关详细信息,建议您查看WhatWG documentation,其中指出<span>代码只应在预期 phrasing 内容时使用。

答案 2 :(得分:1)

  

当我输入&lt;&#39;&#39;&gt;时,为什么会导致错误?在&lt;&#39; span&#39;&gt;?

旁注: - &gt;我不得不在上面的paragraph标签周围加上引号,否则会产生换行符。同样适用于span标记,但这会导致不同的行为。

推理错误:

内联元素中只能包含内联元素。 span是内联元素。作为块元素的<p>等标记不能进入内联元素。

这个错误是什么意思?

有关elements可以嵌套在其他elements内以及何时允许这种情况发生的规则。

最值得注意的是,<div>等内联元素中不允许使用块级元素,例如<span>

此错误告诉您标记在<p>中包含<span>元素,并且不允许这样做。

这是一个LINK,它准确地解释了您对W3C验证器错误的询问。

答案 3 :(得分:1)

请参阅此堆栈溢出帖子:Can <span> tags have any type of tags inside them?

基本上,因为span标记是内联元素,所以它们应该只包含其他内联元素,而不是块元素。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span