CSS笔记-4:CSS的层叠性、继承性、优先级

CSS的三大特性

CSS的层叠性、继承性和优先级被称为CSS的三大特性。

层叠性

当相同的选择器设置了一类相同的样式,但是之间会发生冲突时,一个样式会覆盖另一个样式。
CSS代码是从上往下执行的,因此,它会遵循就近原则,即哪一个样式离它近就会显示出哪一个样式。当然,如果样式没有发生冲突,就不会进行层叠。

<style>
div{
    
    
	color:red;
	color:blue;
	}
</style>
.....
<div></div>
/*最终div会显示出蓝色,因为一开始的红色被后来显示的蓝色覆盖*/

继承性

当一个标签是另一标签的子标签时,如果没有特殊声明,它将继承父标签的特性。比如平时使用的body{}就是作用范围最广的一种继承。
但是继承的属性是有限的,一般来说继承的包括和字体有关的字号、颜色、位置等。

行高有一种较为特别的定义方法

font: 12px/1.5

这个1.5意味着行高是当前字体大小的1.5倍,在这里也就是18px

body{
    
    
	font:12px/1.5;
}
div{
    
    
	font-size:16px;
}

这时div中的行高就为24px。
这样的定义方法有助于在字体大小发生改变时灵活改变行高,达到一个整体统一的页面效果。

优先级

当同一个元素指定多个选择器时,就会产生优先级。
当选择器相同时,就会根据层叠性来执行优先级,当选择器不相同时,就会根据选择器的权重执行。
权重如下:
!important>行内style=" “>id=” ">类选择器、伪类选择器>元素选择器>继承
一般权重的书写是按照
0,0,0,0| | 0,0,1,0这样的样式书写,如继承为0,0,0,0 元素为0,0,0,1,伪类为0,0,1,0,只有!important 会用无穷大表示

继承权重的叠加

ul li{
    
    
	color:red;
}
li{
    
    
	color:blue:
}
<ul>
	<li>

这时,li的颜色为红色。在复合选择器中,ul权重为0,0,0,1,li权重为0,0,0,1
因此ul li权重为0,0,0,2,权重更高。
权重虽然可以叠加,但是不能发生进位,也就是说0,0,0,5的权重依然小于0,0,1,0
比如.nav a的权重叠加后为0,0,1,1

猜你喜欢

转载自blog.csdn.net/leanneTN/article/details/109406566