You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:first-child选择器如何仅选中同类型的首个元素

解决:first-child无法忽略其他元素选中目标article的问题

嘿,这个问题我之前也踩过同样的坑!其实核心是你对:first-child的工作逻辑理解有点偏差,咱们一步步来理清楚:

为什么你的代码不生效?

:first-child选择器的规则是:选中某个元素,这个元素必须是它父元素的第一个子元素,同时还要匹配前面的选择器条件。

看你的HTML结构:

<div>
 <div></div>
 <article class="portfolio"></article>
 <article class="portfolio"></article>
 <article class="portfolio"></article>
</div>

父<div>的第一个子元素是那个空<div>,而不是<article>。所以你的article.portfolio:first-child相当于在找“既是父元素第一个子元素,又是带portfolio类的article”——显然不存在这样的元素,代码自然不会生效。

正确的解决方案

方案1:使用:first-of-type选择器(推荐)

:first-of-type会忽略父元素下其他类型的子元素,只针对指定类型的元素筛选第一个。直接替换你的选择器即可:

article.portfolio:first-of-type {}

这个选择器会精准选中父元素下第一个<article>元素,同时它还带有portfolio类,完全符合你的需求,而且兼容性非常好,几乎所有现代浏览器都支持。

方案2:使用:nth-child()的of语法(进阶灵活版)

如果你需要更精准的范围筛选(比如只在带portfolio类的<article>里选第一个),可以用CSS的:nth-child()扩展语法:

article.portfolio:nth-child(1 of article.portfolio) {}

这个语法会先把父元素下所有匹配article.portfolio的元素筛选出来,再从中选第一个。不过这个特性是较新的,需要注意浏览器兼容性(现代浏览器已支持)。

内容的提问来源于stack exchange,提问作者Cain Nuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:04:01