选择器

ZShuai
3 min

# 选择器

# 基本选择器

  • * 通用元素选择器,匹配任何元素
  • E 标签选择器,匹配所有使用 E 标签的元素
  • .info class 选择器,匹配所有 class 属性中包含 info 的元素
  • #footer id 选择器,匹配所有 id 属性等于 footer 的元素

# 组合选择器

# E, F

多元素选择器: 同时匹配所有 E 元素或 F 元素,E 和 F 之间用逗号分隔

# E F

后代元素选择器: 匹配所有属于 E 元素后代的 F 元素,E 和 F 之间用空格分隔

# E > F

子元素选择器: 子元素选择器,匹配所有 E 元素的子元素 F

# E + F

相邻元素选择器: 相邻元素选择器,匹配所有紧随 E 元素之后的同级元素 F

# E ~ F

同级元素通用选择器: 匹配任何在 E 元素之后的同级 F 元素

# 属性选择器

# E[att]

匹配所有具有 att 属性的 E 元素,不考虑它的值。 注意:E 在此处可以省略,比如"[cheacked]"。以下同。)

# E[att=val]

匹配所有 att 属性等于"val"的 E 元素

# E[att~=val]

匹配所有 att 属性具有多个空格分隔的值、其中一个值等于"val"的 E 元素

# E[att|=val]

匹配所有 att 属性具有多个连字号分隔(hyphen-separated)的值、其中一个值以"val"开头的 E 元素,主要用于 lang 属性,比如"en"、"en-us"、"en-gb"等等

# E[att^="val"]

属性 att 的值以"val"开头的元素

# E[att$="val"]

属性 att 的值以"val"结尾的元素

# E[att*="val"]

属性 att 的值包含"val"字符串的元素

p[title] {
  color: #f00;
}

div[class="error"] {
  color: #f00;
}

td[headers~="col1"] {
  color: #f00;
}

p[lang|="en"] {
  color: #f00;
}

blockquote[class="quote"][cite] {
  color: #f00;
}

# 伪元素选择器

# E:first-line

匹配 E 元素的第一行

# E:first-letter

匹配 E 元素的第一个字母

# E:before

在 E 元素之前插入生成的内容

# E:after

在 E 元素之后插入生成的内容

# E:enabled

匹配表单中激活的元素

# E:disabled

匹配表单中禁用的元素

# E:checked

匹配表单中被选中的 radio(单选框)或 checkbox(复选框)元素

# E::selection

匹配用户当前选中的元素

# E:root

匹配文档的根元素,对于 HTML 文档,就是 HTML 元素

# E:nth-child(n)

匹配其父元素的第 n 个子元素,第一个编号为 1

# E:nth-last-child(n)

匹配其父元素的倒数第 n 个子元素,第一个编号为 1

# E:nth-of-type(n)

与:nth-child()作用类似,但是仅匹配使用同种标签的元素

# E:nth-last-of-type(n)

与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素

# E:last-child

匹配父元素的最后一个子元素,等同于:nth-last-child(1)

# E:first-of-type

匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)

# E:last-of-type

匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)

# E:only-child

匹配父元素下仅有的一个子元素,等同于:first-child:last-child 或 :nth-child(1):nth-last-child(1)

# E:only-of-type

匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type 或 :nth-of-type(1):nth-last-of-type(1)

# E:empty

匹配一个不包含任何子元素的元素,注意,文本节点也被看作子元素 序号 选择器 含义

# E:not(s)

匹配不符合当前选择器的任何元素

input[type="text"]:disabled {
  background: #ddd;
}

p:nth-child(3) {
  color: #f00;
}

p:nth-child(odd) {
  color: #f00;
}

p:nth-child(even) {
  color: #f00;
}

p:nth-child(3n + 0) {
  color: #f00;
}

p:nth-child(3n) {
  color: #f00;
}

tr:nth-child(2n + 11) {
  background: #ff0;
}

tr:nth-last-child(2) {
  background: #ff0;
}

p:last-child {
  background: #ff0;
}

p:only-child {
  background: #ff0;
}

p:empty {
  background: #ff0;
}

:not(p) {
  border: 1px solid #ccc;
}
Last Updated: 2/10/2023, 6:53:47 AM