In HTML5, is it correct to put blockquotes
inside paragraphs or is the opposite the right way? I mean, logic tells that a blockquote
may be citing
According to the specs <p>
s can only contains Phrasing content, which blockquote isn't.
On the other side blockquote can contain Flow content which <p>
is.
So only paragraph inside blockquote is valid, but not the opposite.
According to the specifications provided by the W3 group the blockquote
is a block level semantic that should contain the entire quote, which can be made up of multiple paragraphs. Because the blockquote
itself contains one or more paragraphs(or other elements), it doesn't make much sense to put it inside a paragraph. An example, provided by the 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>
As you can see, the example blockquote
contains text that's inside of p
elements, but not inside of q
elements.
The q element is a text level semantic and it should be used to indicate that part of the text is a quotation. Because the blockquote
already indicates quotation, marking the text inside with q
-elements is not necessary. An example, taken from the W3G specification:
<p>The man said <q>Things that are impossible just take longer</q>. I disagreed with him.</p>
Long story short: if you use a blockquote
element, put other elements (such as p
elements) inside of it, but it's not necessary to use q
elements inside a blockquote
.
blockquote
is the block-level replacement for q
elements.
If you want to quote multiple paragraphs so that it looks like a block, use blockquote
and put p
s inside them.
See MDN on blockquotes
The HTML
<blockquote>
Element (or HTML Block Quotation Element) indicates that the enclosed text is an extended quotation.
The example has a <p>
inside a <blockquote>
.
<q> on the other hand says:
The HTML Quote Element (
<q>
) indicates that the enclosed text is a short inline quotation. This element is intended for short quotations that don’t require paragraph breaks; for long quotations use<blockquote>
element.
Bottom line: the correct usage is:
<blockquote>
<p>Paragraph 1.</p>
<p>Paragraph 2.</p>
</blockquote>
<p>
Paragraph 3 with a <q>short quotation</q>.
</p>