深入理解CSS之 层叠

我们知道CSS全称是层叠样式表。但是,你可能对层叠只是一知半解,在没有体系的情况下,你可能遇到问题不知道是怎么回事。
那么就来好好聊聊层叠是什么。

什么是层叠?为什么要层叠?

层叠首先可以是一个动词,层叠的对象是样式表。层叠的目的就是为了方便实现丰富的效果。比如我希望有一个默认的字体大小。但当有个别字体需要自定义大小时,我可以指定大小,并覆盖原来的大小。这就是所谓的层叠。层叠带来好处的同时,也带来了问题,就是当不同的层叠样式同时作用在一个元素上时,应该用哪个层叠样式?
这是一个重复主要的问题,就是怎么处理层叠冲突。

层叠冲突问题

要理解冲突问题,就需要对CSS处理冲突的流程有深刻的认识。请看下图。当发生冲突的时候,第一个步骤是判断不同来源或者重要性。也就是这个级别是最高的。如果你不熟悉,可能就会困惑,不同来源是什么意思?重要性是什么?
在这里插入图片描述
其实对于层叠样式表,一直有一种误解,认为层叠样式就是你自己写的CSS。但浏览器默认也是有层叠样式的。你的样式表属于作者样式表,而浏览器的样式表属于用户代理样式表,也就是浏览器默认样式表。
用户代理样式表优先级低,你的作者样式表会覆盖他。
还有一个是重要性,也就是被!important声明的属性。这个优先级是最高的。
第二高优先级的是内联样式,也就是在html代码里面写到样式。他会覆盖来着

如果到选择器还是不能分出优先级,那么就看谁执行的晚了,后面的覆盖前面的。
最重要的就是这张图,一定要牢牢记住。
最重要的就是这张图,一定要牢牢记住。
最重要的就是这张图,一定要牢牢记住。

关于选择器还有两个重要的原则:
1.不要使用id选择器。
因为一个id选择器的级别非常的高,要想覆盖一个id选择器,你不能通过多个类选择器来覆盖,必须找到另一个id选择器来做相加。这是非常困难的。
2.不要使用important。
important就更加难覆盖了。

猜你喜欢

转载自blog.csdn.net/ScottePerk/article/details/126958768