Параграф игнорирует стиль из-за другого вложенного абзаца
Возможно, мои знания CSS ограничены, но я не понимаю этого:
<p style="color: green">
<p style="color: red">This is red</p>
This should be green. But it not.
</p>
Вторая строка будет выводиться черным цветом, игнорируя "цвет: зеленый". Зачем?
Я тестировал его в Chrome 28 и Firefox 22.
Ответы
Ответ 1
Вы не можете вложить абзацы.
Параграф является элементом автоматического закрытия, </p>
является необязательным - любой элемент блока автоматически закрывает последний открытый <p>
.
Это то, что происходит:
<p style="color: green">
</p> <!-- auto-closed paragraph -->
<p style="color: red">
This is red
</p>
This should be green. But it not.
</p> <!-- here you have syntax error -->
Ответ 2
Вы не можете вложить <p>
. Тег конца абзаца может быть опущен, если следовать следующему абзацу. Это означает, что в вашем коде первый абзац не содержит текста, второй - "Это красный". Затем есть текст "Это должно быть зеленое, но это не так". который не имеет стиля и закрывающего тега </p>
, который не имеет открывающего тега.
check: http://www.w3.org/TR/html-markup/p.html
Ответ 3
Параграф не может быть вложен в другой элемент или элемент блока.
Когда ваш код отображается в браузере, он отображается как ниже:
<p style="color: green"></p>
<p style="color: red">
This is red
</p>
This should be green. But it not.
<p></p>
Итак, вы можете видеть, что к последнему предложению нет обертки, в результате к этому применяется по умолчанию цвет css i.e black.