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

CSS Grid中:nth-child选择器异常:为何选中所有元素而非目标元素?

问题解决:CSS Grid中:nth-child选择器意外选中所有元素的原因及修复

你的问题出在选择器的写法上:.grid :nth-child(1)里的空格是后代选择器,它会匹配.grid容器下所有层级中的第一个子元素,而非.grid的直接第一个子元素。举个例子,如果你的HTML结构是:

<div class="grid">
  <div>子元素1 <span>文本</span></div>
  <div>子元素2 <p>文本</p></div>
</div>

这个选择器不仅会命中.grid的第一个子<div>,还会命中第一个<div>里的<span>(它是父<div>的第一个子元素)、第二个<div>里的<p>(它是父<div>的第一个子元素),最终导致大量元素被选中。

修复方法

使用**子选择器(>)**来限定只选中.grid的直接子元素,修正后的代码如下:

.grid {
    display: grid;
    grid-gap: 1rem;
    grid-template-columns: 100%;
}

/* 选中.grid的直接第一个子元素 */
.grid > :nth-child(1){
    font-weight: bold;
}

/* 选中.grid的直接第二个子元素 */
.grid > :nth-child(2){
    font-weight: normal;
}

你也可以用更直观的:first-child选择器替代:nth-child(1),效果完全相同:

.grid > :first-child {
    font-weight: bold;
}

如果.grid的子元素都是同一类型(比如全部是<div>),还可以写成.grid > div:nth-child(1),进一步提升选择器的精准度。

内容的提问来源于stack exchange,提问作者Jonathan Ahlin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 10:22:10