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

如何用Tailwind实现.child:not(:last-child):hover > img样式?

用Tailwind实现指定CSS效果的方案

要实现你要的.child:not(:last-child):hover > img { transform: translateX(-10px); }效果,Tailwind有两种可行方案:

方案一:使用任意变体(无需额外配置)

直接在.child元素上使用Tailwind的任意变体语法,把选择器逻辑写在类里:

<div class="parent">
  <div class="child hover:[&:not(:last-child)>img]:translate-x-[-10px]">
    <img src="你的图片地址" alt="图片描述">
  </div>
  <div class="child hover:[&:not(:last-child)>img]:translate-x-[-10px]">
    <img src="你的图片地址" alt="图片描述">
  </div>
  <div class="child">
    <img src="你的图片地址" alt="图片描述">
  </div>
</div>

这里的hover:[&:not(:last-child)>img]:translate-x-[-10px]等价于目标CSS逻辑:当当前.child元素不是父元素的最后一个子元素,且处于hover状态时,它的直接子元素img向左平移10px。

方案二:自定义变体(适合重复使用场景)

如果这个效果需要在多个地方复用,推荐在tailwind.config.js中自定义一个变体,让代码更简洁:

1. 修改Tailwind配置文件

/** @type {import('tailwindcss').Config} */
module.exports = {
  theme: {
    extend: {},
  },
  plugins: [
    function({ addVariant, e }) {
      addVariant('not-last-hover-img', ({ modifySelectors, separator }) => {
        modifySelectors(({ className }) => {
          return `.${e(`not-last-hover-img${separator}${className}`)}:not(:last-child):hover > img`;
        });
      });
    },
  ],
}

2. 在HTML中使用自定义变体

<div class="parent">
  <div class="child not-last-hover-img:translate-x-[-10px]">
    <img src="你的图片地址" alt="图片描述">
  </div>
  <div class="child not-last-hover-img:translate-x-[-10px]">
    <img src="你的图片地址" alt="图片描述">
  </div>
  <div class="child">
    <img src="你的图片地址" alt="图片描述">
  </div>
</div>

后续需要复用该效果时,只需给.child元素添加not-last-hover-img:translate-x-[-10px]类即可,代码可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:10:03