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

如何为包含特定类嵌套<div>的<li>元素设置样式?

解决方案

你当前的CSS选择器li > .item-wide只能选中<li>的直接子元素中带有.item-wide的元素,但你的.item-wide是嵌套在另一个<div>里的,这个选择器其实没命中目标(可能你测试时的结构有差异)。更关键的是,你要给<li>本身加样式,而非它内部的<div>,这时候得用CSS的:has()伪类。

:has()可以选择包含指定后代元素的父元素,正好满足你的需求——选中所有内部任意位置存在.item-wide的<li>。

修改后的CSS代码:

ul{
   display: flex;
   flex-wrap: wrap;
   gap: 20px
}

/* 给包含.item-wide的li加样式 */
li:has(.item-wide) {
  /* 示例样式,可根据需求修改 */
  background-color: #f0f9ff;
  border: 1px solid #3b82f6;
  padding: 8px;
}

/* 如果你需要给.item-wide本身加样式,用这个(去掉>,因为不是直接子元素) */
li .item-wide{
  color: green;
}

对应的HTML结构不变:

<ul>
  <li> Some text </li>
  <li> Some text </li>
  <li> Some text </li>
  <li> <div class="other"><div class="item-wide">Some text</div></div> </li>
  <li> Some text </li>
</ul>

注意事项

  • :has()是CSS选择器Level 4的特性,目前Chrome、Firefox 121+、Safari等主流浏览器都已支持;如果需要兼容旧版浏览器,只能通过JavaScript遍历元素,给符合条件的<li>手动添加类名来实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:06:13