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

如何仅用CSS为首个列表首元素设置样式(不依赖ol标签/JS)

解决方案

可以仅用CSS实现需求,先分析你之前选择器的问题:
你写的 div :has(li):nth-child(1) li 中,:nth-child(1) 选中的是 <div> 的第一个子元素 <h1>,而 <h1> 内部没有 <li>,所以这个选择器无法匹配到目标元素。

下面提供两种可行的方案:

方案一:使用:has选择器(更通用,不依赖列表类型)

这个方案不需要指定列表是<ul>还是<ol>,只要是<div>中第一个包含<li>的子元素,就能选中它的第一个<li>:

div > *:has(li):first-of-type > li:first-child {
  /* 这里写你的样式,比如: */
  color: red;
  font-weight: bold;
}

解释:

  • div > *:has(li):匹配<div>的直接子元素中包含<li>的元素
  • :first-of-type:选中这些元素里的第一个(也就是你的第一个列表)
  • > li:first-child:选中这个列表的第一个<li>

方案二:不使用:has(兼容旧版浏览器)

如果需要兼容不支持:has的旧浏览器,可以利用已知的HTML结构(<h1>之后的第一个列表):

div > :nth-child(2) > li:first-child {
  /* 样式 */
  color: red;
  font-weight: bold;
}

解释:

  • div > :nth-child(2):选中<div>的第二个直接子元素(也就是你的<ul>)
  • > li:first-child:选中这个列表的第一个<li>
    这个方案依赖<h1>是<div>的第一个子元素,但不依赖<ol>标签,符合你的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:00:52