使用 Tailwind 在悬停时填充 SVG 颜色

SVG color fill on hover using Tailwind

我一直在尝试让我的 svg 在悬停时用黑色填充,但似乎做不到。

我想要它有这样的黑色轮廓 .
然后像这样填写 .

这是我希望在悬停时填写的代码。但是,它并不完全有效。如果我将 hover:fill-current 中的 hover: 去掉,那么它会一直填充黑色。

<svg class="h-6 w-6 text-black hover:fill-current" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
    stroke="currentColor" aria-hidden="true">
    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
        d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
</svg>

有什么想法吗?

1- 默认情况下,仅为填充实用程序生成响应变体。因此,我们需要创建所需的变体来为 fill-current class.

激活 :hover 状态
module.exports = {
  theme: {
    extend: {
    },
  },
  variants: {
    fill: ['hover', 'focus'], // this line does the trick
  },
  plugins: [],
}

2- 考虑使用颜色 class 以获得准确的结果。

<svg class="h-6 w-6 text-black hover:fill-current hover:text-black" ... />
</svg>

Working example

参考

Fill - Tailwind docs