2016-06-15 3 views

ответ

11

Вы не может иметь заголовок (H1 к H6) как ребенок из p, , что недействительная HTML.

Это не работает, потому что ваш браузер автоматически закрывать p элемент перед началом h1 элемента, оставляя вас с этим сгенерирована DOM (код) ниже:

<p> </p> 
<h1>This is a header</h1> 
<p> </p> 

Используя либо к Асесс F12 вашего инструменты разработчика браузера или используя CTRL + U для просмотра исходного кода, вы можете увидеть эту созданную DOM выше.


Вместо этого, вы можете иметь span внутри p или заголовок (H1 к H6)

h1 { 
 
    color: red; 
 
} 
 
h2 span { 
 
    color: green 
 
} 
 
p span { 
 
    color: blue 
 
}
<h1>This is a header</h1> 
 
<h2><span>This</span> is a second header</h2> 
 
<p><span>This</span> is a paragragh</p>

Подробнее о headings contents и phrasing elements в W3C спецификации

+0

Вы можете иметь 'span' внутри тега' p' или любого другого [PhrasingElement] (https://www.w3.org/TR/html-markup /common-models.html#common.elem.phrasing) – DaniP

+0

На этом примечании, способ отладки таких проблем состоит в том, чтобы просмотреть ** сгенерированную ** DOM браузером с помощью инспектора браузера. –

Смежные вопросы