继承
css某些属性具有继承的特点,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。
如以下代码,不仅< p>标签文字变色,< span>标签也会变色。
p{color:red;}
<p>俱往矣,<span>数风流人物,</span>还看今朝。</p>
但是有些属性不具有继承性,如:
p{color:red;border:1px solid red;}
<p>俱往矣,<span>数风流人物,</span>还看今朝。</p>
效果:
如果想< span>标签也加边框,需要单独设置:
<p>俱往矣,<span style="border:1px solid blue">数风流人物,</span>还看今朝。</p>
效果:
特殊性-权值
权值的存在,决定了我们在对同一个标签设置不同的css样式时会使用哪一个,如:
p{color:red;}
.first{color:green;}
<p class="first">俱往矣,数风流人物,还看今朝。</p>
效果会是绿色,原因就是权值的存在
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:
p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/
继承的权值最小,小于1
层叠
上面讲了权值,那么会有一个问题,如果权值一样的结果会怎样呢?层叠就是当权值一样的时候后定义的样式会覆盖前面定义的样式,如:
p{color:red;}
p{color:green;}
<p>数风流人物,还看今朝。</p>
字体会是绿色
这样就可以理解css样式优先级了:
内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)
注意:
如果有些情况,我们不希望后面的覆盖前面的样式,我们可以定义最高权值,使用!important,如:
p{color:red!important;}
p{color:green;}
<p>数风流人物,还看今朝。</p>
这样字体就会是红色了