2015-08-23 4 views
0

В HTML5, правильно ли поставить blockquotes внутри абзацев или наоборот? Я имею в виду, что логика говорит, что может ссылаться на несколько параграфов, не так ли?Должны ли блокировки содержать абзацы или абзацы, содержащие блок-таблицы?

Но не blockquotes необходимо содержать q элементов? Может ли кто-нибудь объяснить мне правильную структуру?

EDIT: Чтобы добавить информацию. Я получил это сомнение, потому что, пытаясь внедрить кавычки с CSS, они не отображаются на , но они делают на 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>

ответ

2

В соответствии с the specifications provided by the W3 group - это семантика уровня блока, которая должна содержать всю цитату, которая может состоять из нескольких абзацев. Поскольку сам содержит один или несколько абзацев (или других элементов), нет смысла вкладывать его в абзац.В качестве примера, предусмотренных 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> 

Как вы можете видеть, например, содержит текст, который находится внутри p элементов, но не внутри q элементов.

The q element is a text level semantic и его следует использовать, чтобы указать, что часть текста - это цитата. Поскольку уже указывает котировку, маркировка текста внутри с помощью q -элементов не требуется. Пример, взятый из спецификации w3g:

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

Короче говоря: если вы используете элемент, поставить другие элементы (такие как p элементы) внутри него, но это не обязательно использовать q элементы внутри .

2

является блок-уровня замена для q элементов.

Если вы хотите цитаты многократных пунктов так, что он выглядит как блок, используйте и положить p S внутри них.

См MDN on blockquotes

<blockquote> HTML-элемент (или HTML-блок цитаты Элемент) указывает на то, что заключенный в текст представляет собой расширенную котировка.

В примере имеет <p>внутри<blockquote>.

<q> с другой стороны говорит:

HTML-Quote Элемент (<q>) указывает на то, что заключенный в текст короткий рядный цитаты. Этот элемент предназначен для коротких цитат, которые не требуют разрывов абзацев; для длинных котировок используйте элемент <blockquote>.


Итог: правильное использование является:

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

Это приятно, но то, что действительно заставило меня сомневаться, заключается в том, что в блочном блоке не отображаются кавычки, я не знаю почему. Я уточню свой вопрос. – Vandervals

+1

@ Vandervals Не предполагается показывать кавычки. По умолчанию стиль - это маржа, а не кавычки. – Xufox

2

Согласно specs<p> с может содержит только Phrasing content, что не является BLOCKQUOTE.

С другой стороны blockquote может содержать Flow content, который <p> есть.

Так что только абзац внутри blockquote действителен, но не наоборот.