CSS 样式优先级

CSS 样式优先级

在html css的学习中 当一个标签有多种样式时 它该如何选择呢 ?

我总结了一下:(可以根据以下方法按照1. 2. 3.先后顺序 来判断CSS 样式的优先级)


1)!important

!important 的属性拥有最高优先级。

!important 用法 ( 写于属性分号前面,多项亦是如此 )

p {
    background: red !important;
}

2)选择器的优先级

A 》 ID 选择器 (100)
B 》 类选择器 ,属性选择器 ,伪类选择器 (10)
C 》 标签选择器 ,伪元素选择器 (1)

优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器
* 注意 内联样式的优先级最高(为1000)

选择器的优先级大致可以分为这三类:其中A 类的优先级最高(为100)再者是B类(10)最后为C类(1)。计算选择符类型A B C 的个数:分别为a、b、c 。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照”就近原则”(如下)来判断。

  • 注意:(选择器的权值不能进位)也有人用权值相加的方法决定样式的选择,这种说法其实是有问题的。比如一个由 11 个类选择器组成的选择器和一个由 1 个 ID 选择器组成的选择器指向同一个标签,按理说 110 > 100,应该应用前者的样式,然而事实是应用后者的样式。错误的原因是:选择器的权值不能进位。还是拿刚刚的例子说明。11 个类选择器组成的选择器的总权值为 110,但因为 11 个均为类选择器,所以其实总权值最多不能超过 100, 你可以理解为 99.99,所以最终应用后者样式。

3)就近原则

1 》最近的祖先样式比其他祖先样式优先级高。(”直接样式”比”祖先样式”优先级高。)
2 》对于外部样式和内部样式来说,样式被应用的位置越在下面 优先级越高

(eg:)类名为 son 的 div 其祖先样式为两个,颜色分别为 red,blue。根据就近原则得该div颜色为blue。

<div style="color: red">
    <div style="color: blue">
        <div class="son"></div>
    </div>
</div>

猜你喜欢

转载自blog.csdn.net/qq_41853863/article/details/80641190