:first-child选择器用于选中父元素下第一个子元素且符合指定条件的元素,常用于控制列表、段落等首个子元素的样式。

要使用 :first-child 选择器实现样式控制,关键是理解它选中的是父元素下的第一个子元素,且该元素符合指定的标签或类条件。这个伪类常用于对列表、段落、表格等结构中的首个元素单独设置样式。
基本语法与作用
:first-child 会匹配作为其父元素的第一个子元素的指定元素。例如:
-
p:first-child:选中父元素中第一个子元素是
的段落
- li:first-child:选中列表中第一个
- 项
注意:如果第一个子元素不是目标元素类型,则不会生效。比如父元素第一个子元素是
常见应用场景
在实际开发中,:first-child 常用于以下情况:
立即学习“前端免费学习笔记(深入)”;
- 移除第一个段落的上边距:
p:first-child { margin-top: 0; } - 为列表首项添加特殊背景:
li:first-child { background: #f0f0f0; } - 表格第一行加粗标题(当没有 thead 时):
tr:first-child td { font-weight: bold; }
结合类和标签更精确控制
有时直接使用标签名不够精准,可以结合类名提高 specificity:
- .item:first-child:只选中父元素下第一个子元素且带有 item 类的元素
- ul > li:first-child:确保只选中 ul 直接子元素中的第一个 li
这样能避免样式意外应用到其他结构中。
注意事项与兼容性
:first-child 在现代浏览器中支持良好,包括 IE9+。但需注意:
- 必须是“第一个子元素”,即使中间有空格或换行也可能影响结构(HTML 中空白符可能生成文本节点)
- 若想按类型而非位置选第一个,应使用 :first-of-type
- 避免过度依赖,必要时可在 HTML 中添加类名更直观控制
基本上就这些。合理使用 :first-child 能减少额外类名,让 CSS 更简洁,但也需理解其匹配逻辑,避免误选。掌握好这个伪类,能有效提升样式编写的效率和语义性。不复杂但容易忽略细节。










