我第一次使用顺风,我不知道为什么颜色不工作。这是一个新安装的拉拉威尔急流,它带有顺风,Vue3,维特和惯性。
如果类是动态添加的,那么相关的样式就不会从tailwind导入。
这是一些基本的组件
<template>
<div :class="style" class="border-l-4 p-4" role="alert">
<p><slot name="headline"></slot></p>
<p class="pt-3" v-if="slots.error"><span class="font-bold">Message:</span><slot name="error"></slot></p>
<div class="my-3" v-if="slots.info"><slot name="info"></slot></div>
</div>
</template>
<script setup>
import { useSlots } from 'vue'
const slots = useSlots()
</script>
<script>
export default {
name: 'Alert',
props: {
color: {type: String, default: 'red'}
},
computed: {
style() {
return `bg-${this.color}-100 border-${this.color}-500 text-${this.color}-700`
}
}
}
</script>
使用类似这样的东西并没有任何颜色相关的样式,尽管类是存在的
<Alert color="orange" class="my-5">
<template #headline>Test</template>
</Alert>
但是如果动态类也在同一页面中的某处被指定,则一切都工作。
即
<div class="bg-orange-100 border-orange-500 text-orange-700"></div>
<Alert color="orange" class="my-5">
<template #headline>Test</template>
</Alert>
3条答案
按热度按时间8tntrjer1#
是否建议在
tailwind
中使用dynamic class
?不
通常不建议在
tailwind-css
中使用dynamic classes
,因为tailwind
使用tree-shaking
,即任何未在源文件中声明的类,都不会在输出文件中生成。因此,始终建议使用***完整类名***
根据文件
如果使用字符串插值或将部分类名连接在一起,Tailwind将找不到它们,因此不会生成相应的CSS
周围没有工作吗?
是
作为最后的手段,Tailwind提供安全列表课程。
安全列表是最后的手段,应该只在不可能扫描某些内容以查找类名的情况下使用。这种情况很少见,您应该几乎永远不需要此功能。
在您的示例中,您希望使用
100 500 700
色调。您可以使用正则表达式通过pattern
包含所有您想要的颜色,并相应地指定色调。注意:您也可以强制Tailwind创建
variants
:在
tailwind.config.js
中额外:如何在
safelist
中自动设置所有顺风颜色编辑:有简单的方法吗?
如果你不想用泛型的方式来做,你甚至可以选择一个简单得多的解决方案,通过临时定义你需要的类。
到
这些回答受到了各种不同来源的影响:
@署名:ChenBr、mbdavis、SymmetricsWeb
jc3wubiy2#
这是一个相对容易的修复,这里提到避免动态构造类名tailwindcss.com/docs/content-configuration#dynamic-class-names
因此,在计算样式中,我只是有条件地指定了包含所有可能值的完整类名
从这里改变。
到这个
现在一切都很完美
zyfwsgd63#
在处理一些基本的动态类时,我一直使用的方法是简单地将所有可能的类放入文件中。我注意到,即使类是在注解行中指定的,当在任何文件中找到这些类时,tailwind仍然会导入它们的样式
下面是一个示例
所以现在所有这些都可以正常工作了
但是这个没有任何样式,因为为紫色生成的类没有在任何文件中预先指定