CSS 选择器的优先级

选择器的优先级

上面讨论了一个标签从祖先继承来的属性,现在讨论标签自有的属性。在讨论 CSS 优先级之前,先说说 CSS 7 种基础的选择器:

ID 选择器, 如 #id{}

类选择器, 如 .class{}

属性选择器, 如 a[href="segmentfault.com"]{}

伪类选择器, 如 :hover{}

伪元素选择器, 如 ::before{}

标签选择器, 如 span{}

通配选择器, 如 *{}

CSS 优先规则1:优先级关系:伪元素选择器> !important > 内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器> * > 继承样式 > 浏览器默认样式

CSS 优先规则2: 最近的祖先样式比其他祖先样式优先级高。
举例:


CSS 优先规则3:"直接样式"比"祖先样式"优先级高。
举例:


CSS 优先规则4:计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。
举例

// HTML
// CSS #con-id span { color: red; } div .con-span { color: blue; }

CSS 优先规则5:属性后插有 !important 的属性拥有最高优先级。若同时插有 !important,则再利用规则 3、4 判断优先级。
举例

// HTML

// CSS p { background: red !important; } .father .son { background: blue; }

你可能感兴趣的:(CSS 选择器的优先级)