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

Tailwind CSS 3.1.6版本中first:、last:、even:、odd:变体异常问题求助

解决Tailwind CSS中first:/last:/even:/odd:变体失效的问题

嘿,我来帮你搞定这个Tailwind变体的问题!你的核心问题是把结构伪类变体的类加错了位置——这些变体是要应用到**列表项(<li>)**上的,而不是父容器<ol>。

为什么你的代码会出错?

当你把first:bg-green-500加到<ol>上时,Tailwind生成的CSS是这样的:

.first\:bg-green-500:first-child {
    --tw-bg-opacity: 1;
    background-color: rgb(16 185 129 / var(--tw-bg-opacity));
}

这意味着如果这个<ol>是它父元素的第一个子元素,整个列表容器都会变成绿色,而不是列表里的第一个<li>。这就是你看到所有元素都变绿的原因。同理,last:、even:、odd:这些变体加在父容器上时,也不会作用到子列表项上。

修正后的代码

把变体类直接加到每个<li>元素上,就能实现你想要的效果:

<ol>
  <li class="first:bg-green-500 last:bg-black even:bg-gray-100 odd:bg-gray-200">Lorem ipsum dolor sit amet.</li>
  <li class="first:bg-green-500 last:bg-black even:bg-gray-100 odd:bg-gray-200">Lorem ipsum dolor sit amet.</li>
  <li class="first:bg-green-500 last:bg-black even:bg-gray-100 odd:bg-gray-200">Lorem ipsum dolor sit amet.</li>
  <li class="first:bg-green-500 last:bg-black even:bg-gray-100 odd:bg-gray-200">Lorem ipsum dolor sit amet.</li>
  <li class="first:bg-green-500 last:bg-black even:bg-gray-100 odd:bg-gray-200">Lorem ipsum dolor sit amet.</li>
  <li class="first:bg-green-500 last:bg-black even:bg-gray-100 odd:bg-gray-200">Lorem ipsum dolor sit amet.</li>
</ol>

额外优化小技巧

如果觉得每个<li>都写重复类太麻烦,你可以用Tailwind的@apply指令提取公共类:

@layer utilities {
  .list-item-styles {
    @apply first:bg-green-500 last:bg-black even:bg-gray-100 odd:bg-gray-200;
  }
}

之后在<li>上直接用<li class="list-item-styles">就能复用样式啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:12:32