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

如何在Tailwind中仅隐藏<ul>最后子元素内的特定内容?

解决方案

你之前的问题核心是选错了目标元素:把last:hidden加在<span>上时,每个<span>都是所在<li>的最后子元素,自然会全部隐藏。正确的思路是针对**<ul>里的最后一个<li>**内部的<span>做隐藏,而非每个<li>的最后子元素。

下面是两种纯Tailwind的实现方式,不需要依赖数组索引:

方案一:默认显示,仅最后一项隐藏

给每个<span>添加自定义选择器类,仅当父元素是最后一个<li>时隐藏:

<ul>
  <li>列表项1 <span class="[li:last-of-type_&]:hidden">; AND</span></li>
  <li>列表项2 <span class="[li:last-of-type_&]:hidden">; AND</span></li>
  <li>列表项3 <span class="[li:last-of-type_&]:hidden">; AND</span></li>
</ul>
  • 语法解释:[li:last-of-type_&]是Tailwind支持的自定义选择器,&指代当前的<span>元素,等价于CSS的li:last-of-type span,仅匹配最后一个<li>内部的<span>并添加hidden类。

方案二:默认隐藏,非最后一项显示

如果更倾向默认隐藏,只给需要的列表项显示后缀:

<ul>
  <li>列表项1 <span class="hidden [li:not(:last-child)_&]:block">; AND</span></li>
  <li>列表项2 <span class="hidden [li:not(:last-child)_&]:block">; AND</span></li>
  <li>列表项3 <span class="hidden [li:not(:last-child)_&]:block">; AND</span></li>
</ul>
  • 语法解释:[li:not(:last-child)_&]等价于CSS的li:not(:last-child) span,匹配所有非最后一个<li>内部的<span>,覆盖默认的hidden类改为block显示。

这两种写法都完全基于Tailwind的原子类语法实现,无需额外逻辑判断,比数组索引的方式更贴合Tailwind的使用习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:35:20