css就近原则_CSS三⼤特性
CSS 三⼤特性
CSS的三个特性是指层叠性、继承性以及优先级。
⼀、CSS层叠性
说明
层叠性是多种CSS样式的叠加,是浏览器处理样式冲突的⽅式。在HTML中对于同⼀个元素可以有多个CSS样式存在,当有相同权重的样式存在时,会根据这些样式出现的先后顺序来决定,处于最后⾯的CSS样式将会覆盖前⾯的CSS样式。
举例
下⾯代码,出现⼀个div 标签指定了相同样式不同值的情况,这就是样式冲突。
div{
color:red;
}
div{
color:blue;
}
原则
通常出现样式冲突,会按CSS书写的顺序,以最后的样式为准。
1. 样式不冲突,不会层叠。
2. 样式冲突,遵循就近原则。 长江后浪推前浪,后⾯样式盖前⾯。
⼆、CSS继承性
说明
某些==样式,如⽂本颜⾊和字号。想要设置⼀个可继承的属性,只需将简单的理解为—“⼦承⽗业“,是指⼦标签会继承⽗标签的==某些
它应⽤于⽗元素即可。
举例
<style>
div{color:pink;font-size:20px;}
</style>
<div>
<span>
我是什么颜⾊的?
</span>
</div>
注意
1. 合理使⽤继承可以简化代码,降低CSS样式的复杂性。对于字体、字号、颜⾊、⾏距等==⽂本类属性==
==⽂本类属性==具有继承性,都可以在body中统⼀设置,然后影响⽂档中所有⽂本。
==与块级元素相关的==属性都不具2. 但是,并不是所有的CSS属性都可以继承,如边框、外边距、内边距、背景、定位、元素⾼度等==与块级元素相关的==
有继承性
三、CSS优先级
在复杂CSS样式表,往往并不是相同样式不同值的堆叠这么简单,经常出现两个或多个不同样式规则应⽤在同⼀元素上,这时到底采⽤哪个样式呢?这就是典型的CSS优先级问题。
处理优先级问题,就是考虑样式权重的⾼低。这⾥先给⼤家介绍⼀些特殊的情况:
1. ==继承样式的权重为0。==也就是说,在嵌套结构中,⽆论⽗元素样式权重多⼤,⼦元素继承时,应⽤在⼦元素上的权重都为0,
即⼦元素定义的样式会覆盖所有继承来的样式。
2. ==⾏内样式优先。==应⽤style属性的元素,其⾏内样式的权重⾮常⾼,可以理解为远⼤于100。总之,他拥有⽐上⾯提⾼的选择
器都⼤的优先级。
3. 权重相同时,CSS遵循就近原则。也就是说靠近元素的样式具有最⼤的优先级,或者说排在最后的样式优先级最⼤。
4. CSS定义了⼀个!important命令,该命令被赋予最⼤的优先级。也就是说不管权重如何以及样式位置的远近,!important都具有最⼤
优先级。
CSS特殊性
说明
或称⾮凡性,是需要⽤⼀套计算公式来去计算CSS的权重。CSS的权重是⼀个衡量CSS值优先级的⼀个标准,规则如下:
⽤⼀个四位的数字串(CSS2是三位)来表⽰,更像四个级别,值从左到右,左⾯的最⼤,⼀级⼤于⼀级,数位之间没有进制,级别之间不可超越。
注意
1. 继承的权重为 0。
2. 数值之间没有进制计算,⽐如: 0,0,0,5 + 0,0,0,5 =0,0,0,10 ⽽不是 0,0, 1, 0, 所以不会存在10个div等于⼀个类选择器的状况。
3. 权重是⽤来计算优先级的,层叠是来表现优先级的。
总结优先级
!important>⾏内样式> ID 选择器>类(伪元素、伪类、属性)选择器>元素选择器>通⽤选择器
1. 使⽤了 !important声明的规则。
2. 内嵌在 HTML 元素的 style属性⾥⾯的声明。css 属性选择器
3. 使⽤了 ID 选择器的规则。
4. 使⽤了类选择器、属性选择器、伪元素和伪类选择器的规则。
5. 使⽤了元素选择器的规则。
6. 使⽤了通配符的规则。
7. 同⼀类选择器则遵循就近原则。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论