【问题标题】:Variants hover not applying in TailwindCss变体悬停在 TailwindCss 中不适用
【发布时间】:2026-02-11 00:20:06
【问题描述】:

我有一个自定义类设置,我正在尝试添加变体,但似乎行为与经典 CSS 没有改变。

@layer components {
    @variants hover, focus {
        .btn-primary {
            background-color:blue;
            
        }
    }

    .btn-primary{
        @apply bg-primary rounded-sm border-4 border-primary rounded-sm text-white text-base py-2 px-4 capitalize transition-all;
        
    }
}

如果变体在.btn-primary 之后,则它会应用蓝色背景,就像什么都没有一样。 悬停或集中工作。

这是我根据我看到的其他帖子在顺风配置中添加的内容:

variants: {
    extend: {
        backgroundColor: ['hover'],
    }
}

【问题讨论】:

    标签: tailwind-css


    【解决方案1】:

    您可以直接在.btn-primary 定义中使用hover:focus: 前缀。

    .btn-primary {
        @apply bg-primary hover:bg-blue-700 focus:bg-blue-700 rounded-sm border-4 text-white text-base py-2 px-4 capitalize transition-all;  
    }
    

    您也不需要将hoverfocus 变体添加到配置中的backgroundColor 属性,因为它已默认启用。

    【讨论】:

    • 谢谢!我不明白为什么他们会建议在文档中使用变体,这不起作用
    • 您配置变体的方式意味着您将使用hover:btn-primaryfocus:btn-primary 的类。这有其用途,但不是您所需要的。
    • 好吧,我明白了,如果我想使用经典 CSS 之类的类,因为 btn-primary:hover { } 不起作用,因为它被 Tailwind 覆盖了?有可能吗?
    • 对于 TailwindCSS 实用程序不够用的情况,您可以使用常规 CSS 创建实用程序,请参阅 tailwindcss.com/docs/adding-new-utilities#using-css
    • 非常感谢您的帮助!