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

CSS :first-of-type伪类未按预期生效,如何仅为li内首个a标签着色?

解决方法:仅为带open类的li的直接子a标签设置颜色

问题出在你的选择器没限定直接子元素,li.open a:first-of-type会匹配所有后代里的第一个a元素——包括嵌套子ul中每个li的a标签,所以所有链接都变蓝了。

你需要用**直接子元素选择器 >**来指定只选中li.open的直接子级a标签,这样就不会影响嵌套的子菜单链接:

li.open > a {
  color: blue;
}

如果要明确强调是第一个直接子元素,也可以写成:

li.open > a:first-of-type {
  color: blue;
}

完整示例代码

CSS

li.open > a {
  color: blue;
}

HTML

<ul>
  <li>
    <a href="#">Section 1</a>
    <ul class="off-canvas__nav-sub">
      <li><a href="#">Sub page 1</a></li>
      <li><a href="#">Sub page 2</a></li>
      <li><a href="#">Sub page 3</a></li>
    </ul>
  </li>
  <li class="open">
    <a href="#">Section 2</a>
    <ul class="off-canvas__nav-sub">
      <li><a href="#">Sub page 1</a></li>
      <li><a href="#">Sub page 2</a></li>
      <li><a href="#">Sub page 3</a></li>
    </ul>
  </li>
  <li>
    <a href="#">Section 3</a>
  </li>
  <li>
    <a href="#">Section 4</a>
  </li>
  <li>
    <a href="#">Section 5</a>
  </li>
</ul>

修改后只有"Section 2"会变成蓝色,子菜单的链接不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:45:30