子选择器
子选择器(Child Selector)是CSS中的一种组合选择器,它通过元素之间的直接父子关系来选择元素。与后代选择器不同,子选择器只选择直接子元素,而不选择间接子元素。
基本语法
子选择器的语法是使用>符号分隔两个选择器:
css
parent > child {
property: value;
}
其中,parent是父元素的选择器,child是直接子元素的选择器。
工作原理
子选择器会匹配所有直接作为父元素子元素的元素。也就是说,只有当元素B是元素A的直接子元素时,子选择器A > B才会匹配元素B。如果元素B是元素A的间接子元素(即存在中间元素),则不会被匹配。
使用示例
示例1:选择div的直接子元素p
html
<div>
<p>这是div的直接子元素</p>
<div>
<p>这是div的间接子元素</p>
</div>
</div>
css
div > p {
color: blue;
font-size: 16px;
}
这段CSS会选择所有作为div直接子元素的p元素。在上面的HTML中,第一个p元素会被选中,而第二个p元素(是div的间接子元素)不会被选中。
示例2:选择列表的直接子元素
html
<ul class="nav">
<li>首页</li>
<li>关于我们</li>
<li>
产品
<ul>
<li>产品1</li>
<li>产品2</li>
</ul>
</li>
</ul>
css
.nav > li {
display: inline-block;
margin-right: 20px;
position: relative;
}
.nav > li > ul {
position: absolute;
top: 100%;
left: 0;
background-color: white;
border: 1px solid #ccc;
padding: 10px;
display: none;
}
.nav > li:hover > ul {
display: block;
}
这段CSS会选择nav类的直接子元素li,并为它们设置样式。然后,它会选择这些li的直接子元素ul(即下拉菜单),并为它们设置绝对定位和隐藏。最后,当鼠标悬停在li上时,显示其子元素ul。
示例3:结合类选择器使用
html
<div class="container">
<h2 class="title">标题</h2>
<div class="content">
<p>内容段落</p>
</div>
</div>
css
.container > .title {
color: #333;
font-size: 24px;
}
.container > .content {
padding: 20px;
background-color: #f5f5f5;
}
这段CSS会选择container类的直接子元素title和content,并为它们设置不同的样式。
特点
- 直接选择:只选择直接子元素,不选择间接子元素
- 精确性:比后代选择器更精确,可以避免影响深层嵌套的元素
- 中优先级:在CSS选择器优先级中,子选择器的优先级与后代选择器相同
- 性能优势:由于只匹配直接子元素,性能比后代选择器稍好
注意事项
- 层级关系:子选择器只匹配直接的父子关系,不匹配更深层的嵌套
- 与后代选择器的区别:后代选择器使用空格分隔,匹配所有后代元素;子选择器使用
>分隔,只匹配直接子元素 - 浏览器兼容性:子选择器在IE6及以下版本的浏览器中不支持
浏览器兼容性
| 浏览器 | 版本 | 支持情况 |
|---|---|---|
| Chrome | 1+ | ✅ |
| Firefox | 1+ | ✅ |
| Safari | 1+ | ✅ |
| Edge | 12+ | ✅ |
| IE | 7+ | ✅ |
| IE6及以下 | - | ❌ |
相关资源
学习建议
子选择器是CSS中常用的组合选择器之一,它与后代选择器类似但更精确。建议初学者理解子选择器与后代选择器的区别,并在需要精确控制直接子元素样式时使用子选择器。
最后更新:2026-02-07