【问题标题】:Why is it causing an error when i put a <p> inside of a <span>?为什么当我将 <p> 放入 <span> 时会导致错误?
【发布时间】:2017-03-10 06:00:07
【问题描述】:

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

错误:在此上下文中元素 p 不允许作为元素 span 的子元素。 (抑制来自该子树的更多错误。)

<!-- 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>

【问题讨论】:

    标签: html font-awesome


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的帮助!我不是在搜索“内联元素”一词。我调整了我的代码,只是去掉了 span 和 p 元素。
    【解决方案2】:

    因为,正如错误所说,&lt;p&gt; 不是&lt;span&gt; 的有效子代。 &lt;p&gt;block 级元素,&lt;span&gt;inline 元素。内联元素中不能有块元素。

    要么颠倒你的两个标签,要么在&lt;span&gt; 中使用&lt;span&gt;

    如需了解更多信息,我建议查看WhatWG documentation,其中指出&lt;span&gt; 标记应仅在预期phrasing 内容时使用。

    【讨论】:

      【解决方案3】:

      您不想在“内联”元素中包含“块”元素。 &lt;p&gt; 标记应该由 span 或其他内联元素组成。

      【讨论】:

        【解决方案4】:

        为什么我在 中放入 会导致错误?

        旁注: --> 我必须在上面的paragraph 标记周围加上引号,否则会造成换行符。这同样适用于span 标签,但这会导致不同的行为。

        错误原因:

        内联元素中只能包含内联元素。 span 是一个内联元素。 &lt;p&gt; 是块元素的标签不能进入内联元素。

        这个错误是什么意思?

        关于哪些elements 可以嵌套在其他elements 中以及何时允许这种情况发生,有一些规则。

        最值得注意的是,&lt;div&gt; 等块级元素不允许在&lt;span&gt; 等内联元素中使用。

        此错误告诉您,您的标记在 &lt;span&gt; 内包含 &lt;p&gt; 元素,这是不允许的。

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

        【讨论】:

          猜你喜欢
          • 2012-07-14
          • 1970-01-01
          • 1970-01-01
          • 2020-11-16
          • 1970-01-01
          • 1970-01-01
          • 2021-01-10
          • 2012-10-05
          • 2020-11-05
          相关资源
          最近更新 更多