CSS 选择器


# CSS 选择器

在了解本文之前,需要先了解 CSS 基础知识,不懂的小伙伴要自己去补充哦~

CSS 选择器优点

  • 语法简单
  • Vue、React 前端框架的盛行,元素很难存在 id 和 name 这种唯一元素
  • 可以定位复杂元素

CSS 选择器缺点: 需要了解前端 CSS 知识

常见的选择器

选择器 名字 例子 例子描述
基础选择器
.class class选择器 .intro 选择 class="intro" 的所有元素。
#id id选择器 #firstname 选择 id="firstname" 的元素。
* 通配符 选择所有元素。
element 标签选择器 p 选择所有 <p> 元素。
elemnt.class 特定class的标签 input.kw 选择所有 class='kw'<input> 元素
关系选择器
element,element 分组选择器 div,p 同时选择所有 <div> 元素和所有 <p> 元素。
:not(element) 选取不被选中的元素 :not(div) 选取除<div>之外的所有元素
element element 后端选择器 div p 选择 <div> 元素内部的所有 <p> 元素**(包括子元素、孙子元素)**
element>element 子元素选择器 div>p 选择 <div> 元素下的<p> 子元素
element+element 相邻选择器 div+p 选择 <div> 元素之后的第一个兄弟 <p> 元素。
element~element 兄弟选择器 div~p 选择 <div>元素之后的所有兄弟 <p>元素。
属性选择器
E[attr] 选取属性 [target] 选择带有 target 属性所有元素。
E[attribute=value] 选取属性等于 value 的元素 [target=_blank] 选择 target="_blank" 的所有元素。
E[attribute~=value] 选取属性包含多个值,其中一个是 value 的元素 [title~=flower] 选择 title 属性包含单词 "flower" 的所有元素。
E[attribute|=value] 选取属性等于或第一个值等于 value 的元素 [lang|=en] 选择 lang 属性值为 "en" 或第一个值为 "en"的所有元素。
E[attribute^=value] 选取属性值以 value 开头的元素 [title^=flower] 选择 title 属性以单词 "flower" 开头的所有元素。
E[attribute$=value] 选取属性值以 value 结尾的元素 [title$=flower] 选择 title 属性以单词 "flower" 结尾的所有元素。
E[attribute*=value] 选取属性值包含 value 的元素 [title*=flower] 选择 title 属性包含 "flower" 所有元素。

伪类和伪元素选择器

选择器 例子 例子描述
:first-child p:first-child 选择属于父元素的第一个子元素的每个 <p> 元素。
:nth-child(n) p:nth-child(2) 选择属于其父元素的第二个子元素的每个<p> 元素。
:nth-last-child(n) p:nth-last-child(2) 同上,从最后一个子元素开始计数。
:nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个 <p> 元素的每个<p> 元素。
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是从最后一个子元素开始计数。
:last-child p:last-child 选择属于其父元素最后一个子元素每个 <p>元素。

(完)