CSS 选择器参考表

CSS 选择器定义了在 Web 页面中选取特定元素的模式,通常可分为元素选择器、类选择器、ID 选择器、属性选择器等几大类。本页列出了最新 CSS 规范支持的选择器及其用法,是前端开发者必备的参考资料之一(建议收藏)。

CSS 选择器

说明:CSS 选择器,定义了在 Web 页面中选取特定元素的模式,通常可分为类选择器、ID 选择器、元素选择器、属性选择器、伪类选择器、伪元素选择器等几大类。熟练并灵活使用 CSS 选择器,可大大提高我们书写页面样式的能力。

选择器 示例 示例说明 CSS 规范
* * 选择页面中所有元素(可以把 * 理解为是一个通配符) CSS 2
:root :root 选择文档的根元素。通常用于在 :root 中设置 CSS 变量 CSS 3
:lang(language) html:lang(fr) 选择 lang="fr" 的 html 元素。通常使用该选择器来对不同语言的页面进行样式定制化 CSS 2
#id #chart ID 选择器,选择页面中 id="chart" 的元素 CSS 1
.class .card 类选择器,选择页面中 class="card" 的所有元素 CSS 1
.class1.class2 .btn.btn-danger 选择同时具有 btn 和 btn-danger 类名的所有元素 CSS 1
.class1 .class2 .card .card-body 在 class 属性等于 card 元素后代中,选择具有 card-body 类名的元素 CSS 1
element ul 元素选择器,选择页面中所有 ul 元素 CSS 1
element.class input.form-control 选择页面中 class="form-control" 的所有 input 元素 CSS 1
element1, element2 a, button 选择页面中所有 a 和所有 button 元素 CSS 1
element1 element2 div table 选择 div 元素内的所有 table 元素 CSS 1
element1 > element2 ul > li 选择 ul 元素的直接 li 子元素 CSS 2
element1 + element2 input + span 选择紧跟 input 元素的首个 span 元素 CSS 2
element1 ~ element2 hr ~ div 选择前面有 hr 元素的每个 div 元素 CSS 3
[attribute] [disabled] 属性选择器,选择页面中所有带 disabled 属性的元素 CSS 2
[attribute=value] [target=_blank] 选择带有 target="_blank" 属性的所有元素 CSS 2
[attribute~=value] [value~=tool] 选择 value 属性中包含 tool 字样的所有元素 CSS 2
[attribute|=value] [lang|=zh] 选择 lang 属性值等于 zh 或以 zh- 开头的所有元素 CSS 2
[attribute^=value] a[href^=mailto] 选择 href 属性值以 mailto 开头的每个 a 元素 CSS 3
[attribute$=value] img[src$=".png"] 选择 src 属性以 .png 结尾的所有 img 元素 CSS 3
[attribute*=value] a[href*=rest] 选择 href 属性值中包含 rest 字符串的每个 a 元素 CSS 3
:active a:active 选择页面中的活动链接 CSS 1
:hover a:hover 选择鼠标停留在其上的链接 CSS 1
:visited a:visited 选择页面中已访问过的链接 CSS 1
:link a:link 选择页面中未访问过的链接 CSS 1
::after div::after 伪元素选择器,表示在每个 div 内部的最后插入内容 CSS 2
::before div::before 伪元素选择器,表示在每个 div 内部的最开始插入内容 CSS 2
:checked input:checked 选择每个已选中的 input 元素,通常用于选择 type="checkbox" 的 input 元素 CSS 3
:enabled button:enabled 选择页面中每个已启用的 button 元素 CSS 3
:disabled button:disabled 选择页面中每个被禁用的 button 元素 CSS 3
:default input:default 选择默认的 input 元素 CSS 3
:empty div:empty 选择没有子元素的每个 div 元素(包括文本节点)。 CSS 3
:first-child p:first-child 选择属于父元素的第一个子元素的每个 p 元素 CSS 2
::first-letter p::first-letter 伪元素选择器,选择每个 p 元素的首字母 CSS 1
::first-line p::first-line 伪元素选择器,选择每个 p 元素的首行(第一行) CSS 1
:first-of-type p:first-of-type 选择每个 p元素,且该元素是其父级的第一个 p 元素 CSS 3
:focus input:focus 选择当前获得焦点的 input 元素 CSS 2
:fullscreen :fullscreen 选择当前处于全屏模式的元素 实验性
::backdrop ::backdrop 伪元素选择器,选择在任何处于全屏模式的元素下的即刻渲染的盒子 实验性
:in-range input:in-range 选择值处于指定范围之内的 input元素 CSS 3
:out-of-range input:out-of-range 选择值超出指定范围的 input元素 CSS 3
:indeterminate input:indeterminate 选择处于不确定状态的 input 元素。通常用于选择那些具有中间状态的 checkboxes、progress 和 radios 等元素 CSS 3
:valid input:valid 选择当前值为有效值的所有 input 元素 CSS 3
:invalid input:invalid 选择当前值为无效值的所有 input 元素 CSS 3
:last-child p:last-child 选择属于父元素最后一个子元素的每个 p 元素 CSS 3
:last-of-type p:last-of-type 选择每个 p 元素,且该元素是其父级的最后一个 p 元素 CSS 3
:not(selector) :not(button:disabled) 否定选择器,选择所有未被禁用的按钮 CSS 3
:nth-child(n) li:nth-child(4) 选择属于其父元素的第四个子元素的每个 li 元素 CSS 3
:nth-last-child(n) li:nth-last-child(2) 选择属于其父元素的倒数第二个子元素的每个 li 元素 CSS 3
:nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个 p 元素的每个 p 元素 CSS 3
:nth-last-of-type(n) p:nth-last-of-type(2) 选择属于其父元素倒数第二个 p 元素的每个 p 元素 CSS 3
:only-of-type p:only-of-type 选择 p> 元素,且该 p 元素没有其他相同类型的兄弟元素 CSS 3
:only-child p:only-child 选择属于其父元素的唯一子元素的每个 p 元素 CSS 3
:required input:required 选择带有 required 属性的 input 元素 CSS 3
:optional input:optional 选择不带 required 属性的 input 元素 CSS 3
::placeholder input::placeholder 伪元素选择器,用于设置 input 元素的 placeholder 占位符 样式 实验性
:read-only input:read-only 选择带有 readonly 属性的 input 元素 CSS 3
:read-write input:read-write 选择不带 readonly 属性的 input 元素 CSS 3
::selection ::selection 伪元素选择器,可设置已选取内容的样式 CSS 3
:target #profile:target 选择当前活动的 #profile 元素 CSS 3