2013-08-11 4 views
3

В приведенном ниже коде я не понимаю, почему нам нужно поставить color:white в отдельный .marked p? Почему он не работает, если я делаю color:white в пределах marked? Может кто-нибудь объяснить? Спасибо заранее! :)CSS Nesting Selectors

<!DOCTYPE html> 
<html> 
<head> 
<style> 
p 
{ 
color:blue; 
text-align:center; 
} 
.marked 
{ 
background-color:red; 
} 
.marked p 
{ 
color:white; 
} 
</style> 
</head> 

<body> 
<p>This paragraph has blue text, and is center aligned.</p> 
<div class="marked"> 
<p>This paragraph has not blue text.</p> 
</div> 
<p>p elements inside a "marked" classed element keeps the alignment style, but has a different text color.</p> 
</body> 
</html> 

ответ

0

Обратите внимание, что текст, который не находится в теге p, будет синим. Тот факт, что он находится внутри marked, не имеет значения.

3

Обычно дочерний элемент будет inherit цвета своего родителя.

Однако, в этом случае, вы специально добавили стиль цвета для всех <p> элементов:

p { color:blue; text-align:center; } 

, который отменяет любые наследуемые стили, которые могут быть установлены в .marked для этого раздела разметки:

<div class="marked"> 
    <p>This paragraph has not blue text.</p> 
</div> 

селектор:

.marked p {} 

имеет более высокий specificity, чем элемент селектора p сам по себе и переопределяет его значение.