CSS样式继承和样式权重

老白 3个月前 192浏览 0评论

样式的继承

样式的继承:为一个元素设置的样式,同时也会应用到它的后代元素上去。

继承是发生在祖先元素和后代元素上面

继承的设计是为了方便开发,利用继承可以将一些通用的样式统一设置到共同的祖先元素上面,这样只需要设置一次就可以让所有的元素都有该样式。

注意: 并不是所有的样式都会被继承,常见的有背景、布局相关的样式一般都不 会被继承。(例如 transparent、background、position相关内容)

在为父元素设置背景颜色而其中子元素也会显示出相同的背景颜色,这并不意味着 background-color  样式可以被继承,而是因为 background-color 样式的默认值为 transparent 透明的,所以子元素才会显现出父元素的背景颜色。

<div>我是div    <span> 我是子元素span </span></div>
div{
        background-color:skyblue;
        }


选择器的权重

样式的冲突: 当我们通过不同的选择器,选中相同的元素并且对相同的样式设置不同的值,此时就发生了样式的冲突。

选择器的优先级
内联样式1,0,0,0
id选择器0,1,0,0
类和伪类选择器0,0,1,0
元素选择器0,0,0,1
通配选择器0,0,0,0(任何选择器都可以覆盖其样式)
继承的样式没有优先级
!important最高的优先级,甚至超过内联样式

 

div{
    background-color:blue !important;  //(这样会把样式的有限级设置到最高)}

注意:
1、优先级一定要慎用。
2、同时存在 通配选择器 和 继承的样式 那么优先显示通配选择器所设置样式。
3、如果优先级计算后相等,则优先使用靠下的样式,下面的样式会把上面样式覆盖
4、比较优先级的时候,需要将所有的选择器的优先级相加计算,最后优先级越高,越优先显示(分组选择器是优先计算的)
5、选择器的累加不会超过其最大的数量级,类选择器所累计的优先级越高,也不会超过id选择器(不会越级)


发表评论