[深入CSS(上)|青训营笔记]

77 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 33 天

一、选择器优先级

哪条规则生效?

根据特异度选择优先选择器,越特殊优先级越高。
一个使用类选择器“.title”对h1进行样式选择(有一个伪类),另一个使用“article h1”对h1进行样式选择(零个伪类),因为伪类的优先级比标签大一级所以就不用看标签了,1>0,所以“.title”的规则会生效。

d2edc9eac7573cf01e99708f29fa43a.png

d3992424c8beae4d7fbfe733b3056ae.png

有了特异度怎么决定出来结果?

里面有两个按钮(button),“.button”为两个按钮都设置了样式,但是两个按钮都设置了类选择器,我们可以对“主要按钮”重新定义颜色等样式,对之前统一定义的样式进行覆盖。 588f3aa9c5aec395b4b3920fcfe2554.png

二、继承

继承:某些属性会自动继承其父元素的计算值,除非显示指定一个值。
如上图中的color可以继承属性,从父级里一层一层往上找属性。
和文字相关的属性可以继承,所有盒模型不能继承。

怎么让不能继承的去继承? (如盒模型)

使用显示继承。
inherit:
星号+花括号
+box-sizing+inherit

如果没找到属性值?或者没有为属性定义值?

使用初始值。
CSS中,每个属性都有一个初始值。 eg:背景颜色background-color的初始值为transparent;左外边距margin-left的初始值为0;

还可以使用initial关键字显示重置为初始值。
eg:background-color:initial。

三、整体看HTML与CSS是如何计算(CSS求值过程)

CSS整个求值过程非常复杂,可以把他归结为四个步骤。
第一步,确定声明值(将样式表中没有冲突的声明,作为CSS属性值)
第二步,解决冲突的的声明(使用层叠规则,确定CSS属性值)
第三步,使用继承值(没有值的属性去继承父元素的值)
第四步,使用初始值(没有值或没有为改属性定义值)
参考文章:

www.jianshu.com/p/9c8431141…

标题:走进前端技术栈 - CSS - 掘金

网址:juejin.cn/course/byte…