CSS 选择器 与 CSS属性权重

CSS 选择器

  • 元素选择器:通过元素的名称找到指定标签
    🌰 h1{color:red}
  • 类选择器:通过标签的class属性值选中指定元素,class可以在多个元素中使用
    🌰 .box{color:red}
  • id选择器:通过id找到元素,一个HTML文件中id不能重复
    🌰 #box{color:red}
  • 派生选择器(后代选择器or嵌套选择器):类似于路径,找到符合要求的元素,会匹配所有的后代元素
    🌰 ul li p{color:red}
    补充:匹配<ul>里面所有<li>中的全体<p>元素
  • 子元素选择器:和后代类似,但是只能获得子元素
    🌰 ul>li>p{color:red}
    补充:匹配<ul>里面所有<li>中的子元素为<p>的元素
<ul>
<li><div><p>这个不是li的子元素</p></div></li>
</ul>
  • 分组选择器:可以将多种选择器结合到一起使用,用来统一设定样式
    🌰 h1,h2,#abc,.m{color:red}
  • 属性选择器:根据元素的属性及属性值来选择元素
    🌰 *[title]{color: red;} a[title][href]{color: red;}
  • 相邻兄弟选择器:紧接在另一个元素后的元素,而且二者有相同的父元素
    🌰 h3+i{color: red;}
    补充:<h3><i>是相邻兄弟,为<i>的元素添加样式
  • 伪元素选择器:用于向某些选择器添加特殊的效果
    🌰 a:first-child:link {color: red;} div:first-letter{color: red;}
    补充:并非所有元素都可使用伪元素,区分块级元素和行内元素的

CSS选择器在线代码案例展示

如果某元素的某个属性设置了多个选择器中都设置了该属性的值,最终选取哪个的值呢?当然是权重大的属性值啊!

权重计算方法(CSS特异性)

规则

  • 权重使用四个数字来衡量(x,x,x,x)【CSS2使用三位】
  • 继承的权重为(0,0,0,0)
  • 标签选择器的权重为(0,0,0,1)
  • 类、伪类选择器的权重为(0,0,1,0)
  • id选择器选择器的权重为(0,1,0,0)
  • 行内样式的权重为(1,0,0,0)
  • !important的权重无限大

计算方法

  • 多个选择器混杂时,权重之和也是用四个数字来组成,每一位的值为多个选择器四个数字的每位之和。举个🌰:div:first-child的权重为(0,0,0,1)+(0,0,1,0)=(0,0,1,1) ;div ul li (0,0,0,1)+(0,0,0,1)+(0,0,0,1)=(0,0,0,3)
  • 权重之和的数制是不会进位的,低位和再大也比不上上位和,就如再多的标签选择器权重加和也抵不过一个类选择器。
  • 多个选择器之间的顺序是无关的,不影响权重之和。

注意:对于并集选择器来说不是权重的加和,因为理论上它还是独立的,它只相当于将多个选择器的相同内容归于一个并集选择器中,理论上每一个选择器还是独立的。

权重相同时,考虑就近原则
权重不同时,权重大的生效

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			span{color: blue;}
			div span{color: red;}
		</style>
	</head>
	<body>
		<div><span>忘了吧</span></div>
	</body>
</html>

在这里插入图片描述
span{color: blue;} (0,0,0,1)
div span{color: red;} (0,0,0,1)+(0,0,0,1)=(0,0,0,2)

优先级

!important>内联式 > 嵌入式 > 外联式> 浏览器默认样式(User Agent Stylesheet)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值