[CSS] 选择器梳理

本文详细介绍了CSS选择器的优先级规则,包括内嵌、内联和外联样式的关系,以及选择器类型的优先级顺序。同时,讨论了选择器的组合方式,如并列、子孙、子元素、弟弟节点和相邻弟弟节点的选择器。此外,还提到了属性选择器和伪类选择器的使用,如根据属性值匹配元素,以及针对节点状态和位置的伪类选择器。最佳实践建议结合CodePen样例进行学习。
摘要由CSDN通过智能技术生成

选择器第一个要关注的点就是它们的优先级了:

位置上来看:内嵌 > 内联 > 外联 、 重复时后写的会覆盖掉先写的

选择器类型来看:

后面跟!important的属性 > id选择器 > (class、属性、伪类)选择器 > (标签、伪元素)选择器 > *通配符选择器 > 浏览器的自带的默认属性

另外选择器是可以组合的,如果在组合的过程中某个元素的样式属性出现了重复,我们就可以用求和的方式计算优先级,从而判断最终的结果样式。

组合的方式有以下几种:

(1)A和B并列

A,B 并列,则A,B共享定义的样式

.header , .sidebar {}

(2)得到A的指定子孙B

A B,仅B能用到这些样式,B可以是子孙节点的选择器

.header .sidebar {}

(3)得到A的指定子选择器B

A>B,仅B能用到这些样式,B只能是子结点的选择器

.header > .sidebar {}

(4)得到A的指定弟弟节点的选择器B

A~B,仅B可用到这些样式,B可以是任意弟弟节点的选择器

.header ~ .sidebar {}

(5)得到A的相邻弟弟节点的选择器B

A+B,仅B可用到这些样式,B只能是相邻的弟弟节点的选择器

.header + .sidebar {}

(6)得到同时具有两个class选择器的节点的临时样式选择器

.class1.class2, 要连在一起,否则就成了子孙选择器了

.header.sidebar {}

最佳实践实践样例,请移步codepen: 选择器组合

接着,我们还需要关注些常用的选择器怎么使用,

比如 属性选择器

a[href] 将匹配所有具有 href 属性的 a 节点

a[href="www.baidu.com"] 将匹配所有 href 等于指定值的 a 节点

除此之外,属性选择器还能匹配到 指定值 是 实际属性值 的 一个片段 的节点,这些具体用的时候查查MDN吧

另外,还有 伪类选择器

第一种是 拿到指定次序的节点的选择器

li:first-child {} 匹配到 li 的第一个兄弟节点

li:last-child {} 匹配到 li 的最后一个兄弟节点

li:nth-child(an+b) {} 给li的兄弟节点从1开始编号,匹配到满足an+b规则的选择器

li:nth-of-type(an+b) {} 给 li 的 li兄弟节点进行从1开始编号,匹配到满足an+b规则的选择器

第二种是 拿到指定节点处于某一状态的选择器

a:link {}

a:visited {}

a:active {}

a:hover {}

a:focus {}

a:enabled {}

a:disabled {}

a:checked {}

最后就是 伪类选择器

span:before {} 在span前插入内容

span:after {} 在span后插入内容

除此之外,使用伪类元素还能匹配 第一行、第一个首字母的功能,需要时查阅 MDN 吧。

补充最佳实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值