日期:2013-09-03  浏览次数:20829 次

最后定义的 CSS 款式将会覆盖在其之前定义的所有曾经存在、或与之冲突的款式,比如下面这个例子:

p { color: red; background: yellow }
p { color: green }

以上的段落最终将呈现绿色的字体,并带有黄色的背景,这是由于最后定义的 color:green 将之前定义的 red 覆盖掉了,至于黄色背景为何没有消逝,那是由于第二个 p 的定义中并没有与之冲突的定义,因此它还是无效的。

你真的懂了吗?好,我们来做个小测试:

p.red { color: red }
p.green { color: green }
p.blue { color: blue }

...

<p class="red green blue">Sample text.</p>
<p class="green blue red">Sample text.</p>
<p class="blue red green">Sample text.</p>

请问,最终显示的时候,上面三个段落中的文字都将呈现何种颜色呢?

思考一下^_^

答案是它们都显示为 blue ,也就是蓝色,虽然每个段落都以不同顺序使用了三个 p 款式,看上去应该按照使用款式的顺序来决定颜色,比如,第一个显示为 blue ,第二个显示为 red ,第三个显示为 green ,其实这是错误的,这与使用款式的顺序无关,它们最终都听从最后指定的款式,颜色皆为 blue 。