这是我参与「第五届青训营 」伴学笔记创作活动的第 33 天
一、选择器优先级
哪条规则生效?
根据特异度选择优先选择器,越特殊优先级越高。
一个使用类选择器“.title”对h1进行样式选择(有一个伪类),另一个使用“article h1”对h1进行样式选择(零个伪类),因为伪类的优先级比标签大一级所以就不用看标签了,1>0,所以“.title”的规则会生效。
有了特异度怎么决定出来结果?
里面有两个按钮(button),“.button”为两个按钮都设置了样式,但是两个按钮都设置了类选择器,我们可以对“主要按钮”重新定义颜色等样式,对之前统一定义的样式进行覆盖。
二、继承
继承:某些属性会自动继承其父元素的计算值,除非显示指定一个值。
如上图中的color可以继承属性,从父级里一层一层往上找属性。
和文字相关的属性可以继承,所有盒模型不能继承。
怎么让不能继承的去继承? (如盒模型)
使用显示继承。
inherit:
星号+花括号
+box-sizing+inherit
如果没找到属性值?或者没有为属性定义值?
使用初始值。
CSS中,每个属性都有一个初始值。
eg:背景颜色background-color的初始值为transparent;左外边距margin-left的初始值为0;
还可以使用initial关键字显示重置为初始值。
eg:background-color:initial。
三、整体看HTML与CSS是如何计算(CSS求值过程)
CSS整个求值过程非常复杂,可以把他归结为四个步骤。
第一步,确定声明值(将样式表中没有冲突的声明,作为CSS属性值)
第二步,解决冲突的的声明(使用层叠规则,确定CSS属性值)
第三步,使用继承值(没有值的属性去继承父元素的值)
第四步,使用初始值(没有值或没有为改属性定义值)
参考文章:
标题:走进前端技术栈 - CSS - 掘金