随着页面的复杂性,一个标签的样式受到越来越多因素的影响。
从两个角度来看CSS样式的优先级
CSS的继承性
rule 1:
离得越近的祖先优先级越高(爸爸比爷爷对儿子管的权力大 –!)
rule 2:
内联样式比祖先样式优先级高(自己的路自己走)
选择器的优先级
rule 3:
优先级关系:内联样式 >
ID 选择器 >
类选择器 = 属性选择器 = 伪类选择器 >
标签选择器 = 伪元素选择器
rule 4:
ID 选择器 个数a
类选择器、属性选择器、伪类选择器 个数b
标签选择器、伪元素选择器 个数c
依次比较a b c的大小,如果都相等,则“就近原则”
rule 5:
属性后插有!important的属性拥有最高优先级,若同时拥有,则利用rule3、4比较
|
|
注意:按照加权值的说法 100 10 1,11个类选择器和1个ID选择器,按计算110>100,实际仍按ID样式来,原因在于
选择器权值不能进位
1000个类选择器权值为99.9999…. < 100 (瘦死的ID比类大…)
比较了link和@import
|
|
link 属于 HTML,通过 标签中的 href 属性来引入外部文件,而 @import 属于 CSS,所以导入语句应写在 CSS 中,要注意的是导入语句应写在样式表的开头,否则无法正确导入外部文件;
@import 是 CSS2.1 才出现的概念,所以如果浏览器版本较低,无法正确导入外部样式文件
当 HTML 文件被加载时,link 引用的文件会同时被加载,而 @import 引用的文件则会等页面全部下载完毕再被加载;