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

如何为.contactSection下首个h1元素单独设置CSS外边距?

问题出在哪?

你用的.contactSection h1:nth-child(1)选择器逻辑是:选中.contactSection范围内所有满足「是其父元素的第一个子元素」的h1标签。

看你的HTML结构,第二个h1在<div class="post">里面,它刚好是post容器的第一个子元素,所以也被这个选择器命中了,这就导致两个h1都加上了上边距。

两种解决方案

方案1:用子选择器直接锁定直接子元素

如果你要的就是.contactSection直接下属的那个h1,用子选择器>最精准:

.contactSection > h1 { margin-top: 15px; }

这个只会匹配.contactSection的直接子元素里的h1,完全不会影响嵌套在内部的其他h1。

方案2:用:first-of-type选择器

如果你想选中.contactSection范围内出现的第一个h1(不管它是不是直接子元素),可以用:first-of-type:

.contactSection h1:first-of-type { margin-top: 15px; }

这个选择器会在.contactSection的所有后代里,找到第一个h1标签并设置样式,后续的h1不会被选中。

小补充:nth-child vs first-of-type
  • :nth-child(n):看元素在父元素中的位置,不管元素类型,只要是父元素的第n个子元素就会被选中
  • :first-of-type:看父元素中同类型的第一个元素,只关注元素类型,不管它在父元素里的位置顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:27:45