在下面的代码中,我不明白为什么我们需要将color:white
放在单独的.marked p
中?
如果我在color:white
内marked
进行操作,为什么它不起作用?有人可以解释一下吗?
提前致谢! :)
<!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 :(得分:3)
通常,子元素将inherit其父级的颜色。
但是,在这种情况下,您已经为所有<p>
元素专门添加了颜色样式:
p { color:blue; text-align:center; }
这将覆盖可能在.marked
中为此部分标记设置的任何继承样式:
<div class="marked">
<p>This paragraph has not blue text.</p>
</div>
选择器:
.marked p {}
比元素选择器p
本身高specificity并覆盖其值。
答案 1 :(得分:1)
您需要这样做,因为p
选择器的特异性少于.marked
。这就是为什么你需要使用.marked p
来改变颜色。
您可以在此处了解CSS特异性:http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/
答案 2 :(得分:0)
请注意,不在p
标记中的文字将为蓝色。它在marked
内的事实是无关紧要的。