老鬼的博客 来都来啦,那就随便看看吧~
css之继承与权重
发布于: 2020-08-11 更新于: 2020-08-12 分类于: Html 阅读次数: 

一:继承

1
2
3
子元素会继承一些父元素的样式,有些是可以被继承的,有些是不可以被继承,
如:color,font-size等是可以被继承,不过backgroud-color等不是被继承的,
如何区分参考zeal手册,如下所示。

1.png

二:权重

2.1 介绍

1
2
3
4
5
权重也叫优先级,就是在产生样式冲突的时候如何抉择,比如:
<span class="red">123</span>指定了如下样式:
span{color:green};
.red{color:red};
那么span里面的内容是如何显示的呢,这就是样式冲突,下面介绍优先级。

2.2 优先级

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
权重如下:内联样式 > id选择器 > 类或伪类选择器 > 元素选择器
给每种选择器的权重假设如下,权重越大值越大:
内联样式:1000
id选择器:100
类或伪类选择器:10
元素选择器:1

比较优先级时是将所有选择器的优先级加总后进行比较的,优先级越高则越先显示。
比如:#p3的优先级就比div#p3低。

其中分组选择器是单独计算的,如div,p,span{color:red;}的权重是单独计算的。

选择器的权重累加不会超过其最大数量级,如:类选择器的权重累加永远不会超过id选择器。

如果权重相同,则显示靠下的样式,如:<p class="a1 a2">123</p>
假如a1在后则显示a1的样式,假如a2在后则显示a2的样式。

通配选择器*{font-size:10px}的优先级是0.

从父元素继承过来的样式的优先级比通配选择器的优先级还要低。


所以总体的权重如下:
内联样式:1000
id选择器:100
类或伪类选择器:10
元素选择器:1
通配选择器:0
继承的样式:没有优先级
从上到下优先级依次降低。


2.3 设置最高优先级

慎用!!!

1
2
3
可以在样式后面加上!important ,此时此样式会获取最高优先级,比内联样式的
优先级还要搞,不过实际开发中要慎用,因为优先级比较高,无法通过js等其他
手段修改。
*************感谢您的阅读*************