qua*_*asi 8 reactjs tailwind-css
我正在尝试使用通过 props 传递的十六进制颜色代码来设置 div 的背景颜色。这些是动态生成的一次性颜色,因此不能作为主题扩展添加到tailwind.config.
我认为模板文字是实现此目的的最佳方法,但无法使其与 Tailwind CSS 中的任意颜色值一起使用。
interface Props {
color: string;
}
const ColorSwatch = ({ color }: Props) => {
return (
<div className="flex flex-col gap-1 p-2">
<div
className={`h-20 w-20 border border-gray-400 shadow-md bg-[${color}]`}
></div>
<p className="text-center">{color}</p>
</div>
);
};
export default ColorSwatch;
Run Code Online (Sandbox Code Playgroud)
将十六进制颜色代码直接粘贴到 className 列表中会产生预期结果,但尝试在模板文字中使用 prop 值会导致透明背景(未应用背景效果)。
寻求有关如何纠正此问题的建议或使用通过道具传递的十六进制代码动态设置背景颜色的不同方法。
小智 15
不幸的是,Tailwind 要求将颜色硬编码到classNameprop 中,因为它无法从动态值计算任意样式className。
最好的选择是使用style道具设置背景颜色,如下所示;
interface Props {
color: string;
}
const ColorSwatch = ({ color }: Props) => {
return (
<div className="flex flex-col gap-1 p-2">
<div
className="h-20 w-20 border border-gray-400 shadow-md"
style={{backgroundColor: color}}
></div>
<p className="text-center">{color}</p>
</div>
);
};
export default ColorSwatch;
Run Code Online (Sandbox Code Playgroud)
您可以查看此处和此处,了解有关 Tailwind 如何生成任意样式的更多信息。
| 归档时间: |
|
| 查看次数: |
10070 次 |
| 最近记录: |