【问题标题】:Must blockquotes contain paragraphs or must paragraphs contain blockquotes?必须块引用内容段落还是必须段落包含块引用?
【发布时间】:2015-08-23 19:40:57
【问题描述】:

在 HTML5 中,将blockquotes 放在段落中是正确的还是相反的正确方式?我的意思是,逻辑告诉 blockquote 可能引用了多个段落,不是吗?

但是blockquotes 不需要包含q 元素吗?有人能解释一下正确的结构吗?

编辑:添加一些信息。我有这个疑问是因为在尝试使用 CSS 实现引号时,它们不会出现在 blockquote 上,但会出现在 q 元素上。这样做的正确方法是什么?

blockquote, q {
  quotes: "\201C""\201D""\2018""\2019";
  font-style: italic;
}
<blockquote>
  <p>Hello!</p>
  <p>Say something!</p>
</blockquote>
<p>He told me <q>Say something!</q>
</p>

【问题讨论】:

    标签: html blockquote


    【解决方案1】:

    根据the specifications provided by the W3 groupblockquote 是一个块级语义,应该包含整个引用,它可以由多个段落组成。因为blockquote 本身包含一个或多个段落(或其他元素),所以将其放在段落中没有多大意义。 W3G 提供的示例:

    <blockquote>
        <p>My favorite book is <cite class="from-source">At Swim-Two-Birds</cite></p>
        <footer>- <cite>Mike[tm]Smith</cite></footer>
    </blockquote>
    

    如您所见,示例 blockquote 包含位于 p 元素内的文本,但不在 q 元素内。

    The q element is a text level semantic,它应该用于表示部分文本是引用。因为blockquote 已经表示引用,所以不需要用q-elements 标记里面的文本。一个例子,取自 W3G 规范:

    <p>The man said <q>Things that are impossible just take longer</q>. I disagreed with him.</p>
    

    长话短说:如果您使用 blockquote 元素,请将其他元素(例如 p 元素)放入其中,但不必在 blockquote 中使用 q 元素。

    【讨论】:

      【解决方案2】:

      根据specs&lt;p&gt;s 只能包含Phrasing content,而blockquote 不是。

      另一方面,blockquote 可以包含Flow content&lt;p&gt; 是。

      所以只有块引用中的段落是有效的,而不是相反的。

      【讨论】:

        【解决方案3】:

        blockquoteq 元素的块级替换

        如果您想引用多个段落使其看起来像一个,请使用blockquote并将ps放入其中他们。

        MDN on blockquotes

        HTML &lt;blockquote&gt; 元素(或 HTML 块引用元素)表示包含的文本是扩展引用。

        该示例有一个&lt;p&gt; 内部一个&lt;blockquote&gt;

        另一方面,&lt;q&gt; 说:

        HTML 引用元素 (&lt;q&gt;) 表示封闭的文本是一个简短的内联引用。此元素适用于不需要分段的简短引文;对于长引用,请使用 &lt;blockquote&gt; 元素。


        底线:正确的用法是:

        <blockquote>
          <p>Paragraph 1.</p>
          <p>Paragraph 2.</p>
        </blockquote>
        <p>
          Paragraph 3 with a <q>short quotation</q>.
        </p>
        

        【讨论】:

        • 这很好,但真正让我怀疑的是,单独的块引用不显示引号,我不知道为什么。我会更新我的问题。
        • @Vandervals 它不应该显示引号。默认样式是边距,而不是引号。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-04
        • 1970-01-01
        • 2013-02-13
        • 2018-12-03
        • 2015-02-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多