目录

🎮 CSS 选择器

# 选择器

# 通配选择器

使用 * ,选中 HTML 页面中所有的元素,将样式应用到所有的元素:

* {  /* example style */}
1

# 元素选择器

类型、标签选择器,根据标签名来选中指定的元素:

p {  /* 样式应用于所有的p标签 */}
h1{  /* 样式应用于所有的h1标签 */}
1
2

# id 选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式(一般只使用一次);

HTML 中元素使用 id 属性设置 id 选择器,在 CSS 中 使用 # 来定义:

以下对应元素属性 id=“para1”

#para1
{
  text-align:center;
  color:red;
}
1
2
3
4
5

# class 选择器

有别于 id 选择器,cclass 选择器用于描述一组元素的样式:

  • 可以重复使用;

  • 可以通过 class 属性来为元素分组;

  • 可以同时为一个元素指定多个 class 属性;

    HTML 中元素使用 class 属性设置 id 选择器,在 CSS 中 使用 . 来定义:

<p class="center"> test para</p>
1
.center {	text-align:center;}
1
  • 🌰 指定特定的 HTML 元素使用 class:

所有的 p 元素使用 class="center" 让该元素的文本居中:

p.center{  text-align: center;}
1

⚠️命名注意:id 属性名称和 class 名称不能以数字开头;

# 属性选择器

可以根据元素的属性值选中一组元素:

  • 语法 1: [属性名] 选择含有指定属性的元素;
  • 语法 2: [属性名=属性值] 选择含有指定属性和属性值的元素;

  • 语法 3: [属性名^=属性值] 选择属性值以指定值开头的元素;

  • 语法 4: [属性名$=属性值] 选择属性值以指定值结尾的元素;

  • 语法 5: [属性名*=属性值] 选择属性值中含有某值的元素;

  • 🌰:

p[title]
{
  color: orange;
}

p[title=e]
{
  color: orange;
}

p[title^=e]
{
  color: orange;
}

p[title$=e]
{
  color: orange;
}

p[title*=e]
{ 
  color: orange;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 复合选择器

交集选择器:可同时复合多个条件的元素;

  • 语法: 元素选择器选择器1选择器2 { }

  • 注意:如果有元素选择器,必须元素选择器为开头

    🌰:

<div>  ...</div><div class="red">  </div>
1
div.red{  font-size: 30px;}
.a.b.c{    color: blue;}
1
2

并集选择器同时选择多个选择器对应的元素;

  • 语法:使用 , 隔开: 选择器1,选择器2,选择器3,选择器n { }

    🌰:

<h1> ... </h1><span> ... </span>
1
h1,span{    color: green;}
1

# 关系选择器

子元素选择器 Child Combinator:选中指定父元素的指定子元素;(直接被父元素包含的元素是子元素)

  • 语法: 父元素 > 子元素

🌰 例子:

后代元素选择器 Descendant Combinator:选中指定元素内的指定后代元素;(直接或间接被祖先元素包含的元素叫做后代元素;子元素也是后代元素;)

  • 语法: 祖先 后代

🌰 例子:

兄弟元素选择器 Sibling combinator:选择兄弟元素(拥有相同父元素的元素是兄弟元素)

  • 语法:

    相邻兄弟选择器former_element + target_element { style properties } :元素之间必须相邻,选中后一个元素;

    通用兄弟选择器:位置无须紧邻,只须同层级, A~B 选择 A 元素之后所有同层级 B 元素: former_element ~ target_element { style properties }

    🌰 例子 : sibling combinator (codepen.io) (opens new window)

# 伪类选择器

伪类:不存在的类,特殊的类。使用于描述元素的特殊状态,如:第一个子元素、被点击的元素、鼠标移入的元素.…;伪类一般情况下都是使用 : 开头:

根据子元素排序

  • :first-child 第一个子元素
  • :last-child 最后一个子元素
  • :nth-child() 选中第 n 个子元素
    • n:第 n 个,n 的范围 0 到正无穷
    • 2n 或 even:选中偶数位的元素
    • 2n+1 或 odd:选中奇数位的元素

根据同类型元素排序

  • :first-of-type 同类型中的第一个子元素
  • :last-of-type 同类型中的最后一个子元素
  • :nth-of-type() 选中同类型中的第 n 个子元素

特殊伪类

  • :not() 否定伪类,将符合条件的元素从选择器中去除;
  • :link 未访问的链接

  • :visited 已访问的链接(由于隐私的原因,所以 visited 这个伪类只能修改链接的颜色)

  • :hover 鼠标悬停的链接

  • :active 鼠标点击的链接

更多:伪类 - CSS(层叠样式表) | MDN (mozilla.org) (opens new window)

🌰:例子:

# 伪元素选择器

伪元素:表示页面中一些特殊的并不真实的存在的元素(特殊的位置);伪元素使用 :: 开头

  • 必须结合 content 元素使用:

    • ::before 元素的开始
    • ::after 元素的最后
  • ::first-letter 表示第一个字母

  • ::first-line 表示第一行

  • ::selection 表示选中的内容

⭐️🎮 选择器复习用游戏CSS Diner - Where we feast on CSS Selectors! (flukeout.github.io) (opens new window)

📢 上次更新: 2022/09/02, 10:18:16