CSS的继承性和层叠性(四)
2016-11-08 本文已影响181人
flowerflower
一. 继承性
继承:有一些属性,当给自己设置的时候,自己的后代都继承上了,这便是继承性。继承性从自己开始,直到最小的元素。
继承的属性有:color
、text-开头的
、line-开头的
、font-开头的
、
文字样式的,都能继承,而所有关于盒子的、定位的、布局的属性都不能继承。
二. 层叠性
层叠性:就是CSS
处理冲突的能力。所有的权重计算,没有任何兼容问题
2.1 当选择器,选择上了某个元素的时候,那么要这样统计权重
统计权重的顺序:id的数量,类的数量 ,标签的数量
![](https://img.haomeiwen.com/i1658521/4914497a615c40ec.png)
2.2 如果权重一样,那么写在后面的为准
![](https://img.haomeiwen.com/i1658521/5488d3567cfc7c3f.png)
2.3 如果不能直接选中某个元素,通过继承性影响的话,那么权重为0
![](https://img.haomeiwen.com/i1658521/8c64afeff62df664.png)
2.4 如果大家都是0,则就近原则(谁描述近,就听谁的)
![](https://img.haomeiwen.com/i1658521/177fef7310e702e4.png)
大杂烩
![](https://img.haomeiwen.com/i1658521/68e03064aad3f5d8.png)
![](https://img.haomeiwen.com/i1658521/805b1c071c876b78.png)
![](https://img.haomeiwen.com/i1658521/64631ca8b003cb38.png)
额外补充关于权重
1.同一标签,携带了多个类名,有冲突
<p class="cls1 cls2">我是啥颜色???</p>
<p class="cls2 cls1">我是啥颜色???</p>
与结构中的顺序无关,而与css的顺序有关
.cls1{
color:red;
}
.cls2{
color:yellow;
}
结果是yellow.因为yellow写在后面
2.!important(重要的)标记
!important
来给一个属性提交权重,这个属性的权重就是无穷大。语法:k:v!important
![](https://img.haomeiwen.com/i1658521/bc3ae22ba5243180.png)
!important
提升的是一个属性,而不是一个选择器!important
无法提升继承的权重,该是0还是0HTML
结构
<div>
<p> 猜猜我是啥颜色</p>
</div>
CSS
样式
div{
color: red!important;
}
p{
color: gold;
}
最终显示的颜色为gold
,因为!important
无法提升它的权重,因为p
标签已经选中了,故显示颜色为gold
!important
不影响就近原则
3.权重计算图例总结
![](https://img.haomeiwen.com/i1658521/2747339ae2c9ad8e.png)
权重总结
1>先看有没有选中,如果选中,则以(id数量,类数量,标签数量)来计算权重,谁大听谁的,如果都一样,听后写的为准。
2>如果都没有选中,那么权重为0,如果大家都是0,就近原则。