reactjs Tailwind Gradient Color在伪元素“after”处停止

5fjcxozz  于 2023-06-22  发布在  React
关注(0)|答案(1)|浏览(122)

我正在使用Storybook在React中创建一个组件。看看我的代码:

<button class="btn py-4 px-16 border-0 outline-0 relative rounded-full cursor-pointer 
  after:content-[attr(data-text)] after:text-xl 
  after:bg-gradient-to-r after:from-[#F1B08D] after:to-[#DC675D]  bg-gradient-to-r from-[#F1B08D] to-[#DC675D] " data-text="Click me!"></button>

不幸的是,after:to-[#DC675D]不工作。
我期待这样的输出:

但我得到了这个:

在样式中,after:to-[#DC675D]未显示:

这是我在React上做的:

const colors = color?.split(" ");
  const newColors = colors?.map((color) => `after:${color}`).join(" ");
  console.log(newColors);
  return (
    <button
      className={`btn py-4 px-16 border-0 outline-0 relative rounded-full cursor-pointer 
      after:content-[attr(data-text)] after:text-xl 
      ${newColors} ${blocked ? "w-full" : ""} ${color} ${classes}`}
      onClick={onClick}
      data-text={text}
    ></button>
  );

其中color值为:bg-gradient-to-r from-[#F1B08D] to-[#DC675D]
我在ChatGPT上搜索过,但没有找到。非常感谢你的答复。谢谢!

8zzbczxx

8zzbczxx1#

您可以使用CSS自定义属性(变量)来设置颜色,如下所示:

<main class="bg-black p-5">
  <button class="btn relative cursor-pointer rounded-full border-0 bg-gradient-to-r from-[#F1B08D] to-[#DC675D] px-16 py-4 outline-0 after:bg-gradient-to-r after:from-[#F1B08D] after:to-[--endcolor] after:text-xl after:content-[attr(data-text)]" data-text="Click me!" style="--endcolor: #DC675D"></button>
</main>

https://play.tailwindcss.com/RhtnKCOXpl
因此类after:to-[--endcolor]使用自定义属性--endcolor,该属性是使用style属性style="--endcolor: #DC675D"设置的。
在React中,你可以设置值,然后在style属性中使用它。

const endcolor = "#DC675D";
<button class="[all your classes]" style={{ '--endcolor': endcolor }}></button>

相关问题