CSS是我在前端开发中打交道最多的,而写CSS离不开选择器(selector),今天就来梳理一下CSS各种选择器,复习捡漏。
总结一下,CSS选择器一共有以下3种:
1. 基础选择器:
其中前4种再熟悉不过了,而属性选择器相对来说平时用的很少,下面就来深入属性选择器:
CSS属性选择器,顾名思义就是根据元素的属性(attr)来选择元素,按照选择依据可以分为以下2种:
1.选择存在属性attr的元素,语法是[attr]
2.选择属性attr的值value满足一定条件的元素,语法是[attr<operator>=value],<operator>即表示了value满足的条件,有以下几种:
[attr] 表示带有以 attr 命名的属性的元素。 [attr=value] 表示带有以 attr 命名的,且值为"value"的属性的元素。 [attr~=value] 表示带有以 attr 命名的属性的元素,并且该属性是一个以空格作为分隔的值列表,其中至少一个值为"value"。 [attr|=value] 表示带有以 attr 命名的属性的元素,属性值为“value”或是以“value-”为前缀("-"为连字符,Unicode编码为U+002D)开头。典型的应用场景是用来来匹配语言简写代码(如zh-CN,zh-TW可以用zh作为value)。 [attr^=value] 表示带有以 attr 命名的,且值是以"value"开头的属性的元素。 [attr$=value] 表示带有以 attr 命名的,且值是以"value"结尾的属性的元素。 [attr*=value] 表示带有以 attr 命名的,且值包含有"value"的属性的元素。 [attr operator value i] 在带有属性值的属性选型选择器表达式的右括号(]括号)前添加用空格间隔开的字母i(或I)可以忽略属性值的大小写(ASCII字符范围内的字母)
2.组合选择器:
3.伪类:
语法:selector:pseudo-class
伪类有很多,详情可参考MDN官方文档https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-classes