CSS 组合选择符

在 CSS 中,组合选择符(Combinators)用于描述元素之间的结构关系,比如父子、兄弟、后代等。组合选择符并不是单独的选择器,而是连接两个选择器形成复合规则


✅ 一、常见组合选择符一览

组合符名称作用关系示例
空格后代选择器选择某元素 内部所有层级 的指定后代
>子选择器选择某元素的 直接子元素
+相邻兄弟选择器选择某元素 紧接在后面 的同级兄弟元素
~通用兄弟选择器选择某元素 后面所有 同级兄弟元素

✅ 二、详细讲解与示例


🔹 1. 后代选择器(空格

选择 A 元素内部所有后代(不限层级)的 B 元素。

div p {
  color: red;
}

✅ 表示:所有 div 元素中任意层级的 <p> 都变红。


🔹 2. 子选择器(>

只选择 A 元素的直接子元素 B。

ul > li {
  list-style: square;
}

✅ 表示:只选中 <ul> 下第一层的 <li>,不会选中嵌套在二级、三级 <ul> 中的 <li>


🔹 3. 相邻兄弟选择器(+

选择 A 元素之后紧接着的第一个兄弟元素 B(必须是同级元素)。

h2 + p {
  margin-top: 0;
}

✅ 表示:所有紧跟在 <h2> 后的第一个 <p> 元素,取消顶部外边距。


🔹 4. 通用兄弟选择器(~

选择 A 元素之后,所有同级别后续兄弟元素 B

h2 ~ p {
  color: blue;
}

✅ 表示:所有出现在 <h2> 之后的兄弟 <p> 元素都变蓝。


✅ 三、组合选择器的实际应用场景

场景推荐选择符示例
表格中只选第一层行子选择器 >table > tr
段落后加图标,只给第一个 p 加相邻兄弟 +p + span.icon
高亮所有跟标题在同级的段落通用兄弟 ~h1 ~ p
设置某类按钮中所有 span后代选择器.btn span

✅ 四、组合使用示例(多重组合)

ul > li.active + li span {
  color: orange;
}

✔ 表示:

  • 在一个 <ul> 的直接子元素 <li> 中,
  • 如果该 <li> 有类名 active
  • 那么紧跟它后面的兄弟 <li> 中的 <span> 元素变橙色。

✅ 五、注意事项

  • 组合符中间必须有空格或明确符号(>+~,否则是类名连接。
  • 与 .class1.class2 不同:.box .title 是后代选择器,.box.title 是同时具有两个类的单个元素。
  • 使用 + 和 ~ 的元素必须是同一父元素下的兄弟元素

✅ 六、组合选择器与伪类结合

可以与伪类(如 :hover:first-child)组合使用:

ul > li:first-child {
  font-weight: bold;
}

✔ 选中 <ul> 的第一个直接子 <li> 元素


✅ 七、对比总结表

组合符名称关系类型是否同级是否紧邻层级限制
后代选择器包含关系
>子选择器父子关系✅(一层)
+相邻兄弟选择器同级、紧邻
~通用兄弟选择器同级、后续所有

如果你需要我帮你写某种组合选择器(比如:点击按钮后,高亮某区块中的第一个段落),也可以继续告诉我,我可以帮你写出对应的 CSS。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注