8

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

但是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>

4

3 回答 3

10

根据W3 小组提供的规范,blockquote是一个块级语义,应该包含整个引用,它可以由多个段落组成。因为它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

q元素是文本级别的语义,它应该用于指示文本的一部分是引用。因为已经表示引用,所以不需要blockquote用 -elements 标记里面的文本。q一个示例,取自 W3G 规范:

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

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

于 2015-08-23T20:12:51.783 回答
8

根据规范 <p>s 只能包含Phrasing content,而 blockquote 不是。

另一方面,blockquote可以包含Flow内容<p>

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

于 2015-08-23T20:00:03.413 回答
3

blockquote是元素的块级替换。q

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

参见MDN blockquote_

HTML<blockquote>元素(或 HTML 块引用元素)表示包含的文本是扩展引用。

该示例具有<p> 内部a <blockquote>

<q>另一方面说:

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


底线:正确的用法是:

<blockquote>
  <p>Paragraph 1.</p>
  <p>Paragraph 2.</p>
</blockquote>
<p>
  Paragraph 3 with a <q>short quotation</q>.
</p>
于 2015-08-23T19:49:31.157 回答