Skip to content

CSS 基本选择器

四种基本选择器

① 标签名(元素名)选择器

css
标签名 {}

② 类名选择器

css
.类名 {}
1. 多个元素可以设置相同的类名
2. 一个元素可以设置多个类名

③ ID 选择器

css
#ID名 {}

元素的ID名必须是唯一的!

④ 全局(通配)选择器

css
* {}

基本选择器之间的权重

sh
1. ID选择器 > 类选择器 > 标签名选择器 > 全局选择器
2. 行内式大于所有的选择器
css
padding 设置内边距

组合选择器

① 后代元素选择器

css
选择器1 选择器2 {}

② 子元素选择器

css
选择器1 > 选择器2 {}

③ 交集选择器

css
选择器1选择器2 {}

.item.active {}
.active.item {}
div.item {}

④ 并集选择器

css
选择器1, 选择器2 {}

属性选择器

  • E[attr] 选择具有att属性的E元素。
  • E[attr="val"] 选择具有att属性且属性值等于val的E元素。
  • E[attr~="val"] 选择具有att属性且属性值为一用空格分隔的字词列表,其中一个等于val的E元素(包含只有一个值且该值等于val的情况。
  • E[attr^="val"] 选择具有att属性且属性值为以val开头的字符串的E元素。
  • E[attr$="val"]选择具有att属性且属性值为以val结尾的字符串的E元素。
  • E[attr*="val"] 选择具有att属性且属性值为包含val的字符串的E元素。
  • E[attr|="val"] 选择具有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素,如果属性值仅为val,也将被选择。
js
var checkboxInput = document.querySelector('input[type="checkbox"]');

伪类选择器

sh
:link			选择未访问过的超链接
:visited		选择已访问过的超链接
:hover			鼠标悬停在元素上
:active			鼠标悬停在元素上且鼠标按键按下不抬起
sh
多个伪类选择器一起使用,请按照 :link、:visited、:hover、:active 顺序书写 (love hate 记忆法)

选择器权重(优先级)

① 单个选择器之间的权重

sh
ID选择器 > 类选择器、伪类选择器 > 标签名选择器 > 全局选择器

② 组合选择器优先级比较规则

sh
1. 两个组合选择器,先比较ID的数量,数量多者权重高,比较结束
2. ID数量无法分胜负,比较类、伪类的数量,数量多者权重高,比较结束
3. 类、伪类的数量无法分胜负,比较标签名的数量,数量多者权重高, 比较结束
4. 两个选择器权重一致,后面覆盖前面

**组合: ** 并集选择器的组合,各自计算各自的权重,不会放在一起计算。