Tailwind class 是否可以通过 Storyblok 进行绑定?
Is Tailwind class binding possible through Storyblok?
我正在尝试开发一些将由我们的内容编辑器在 Storyblok 中使用的组件,并且有一个用例,我们希望通过 props 定义布局属性(使用 Tailwind 的 classes)来自 Storyblok 组件。
举个例子,
我正在通过 storyblok 传递 width
道具,给出 w-1/2
的值,这是一个 Tailwind class。正如您在右侧看到的,class 很好地应用于元素,但对页面没有实际影响。我已经对许多其他 classes 进行了相同的尝试(无论是背景颜色还是边框颜色还是文本样式等,我都尝试使用 Tailwind classes 作为来自 Storyblok 的道具,但没有用)。
我唯一的猜测是 Nuxt 是一个服务器端应用程序,CSS 在构建时编译,因此任何新的 class 绑定到 DOM 都不会反映实际情况CSS他们所代表的。这是正确的吗?如果是,是否有办法实现这一点并发挥作用?
widthSetter
组件的代码就这么简单
<template>
{{blok.width}}
<div v-editable="blok" :class="[ blok.width ]">
<component
v-for="value in blok.blocks"
:key="value._uid"
:is="value.component"
:blok="value"
/>
</div>
</template>
<script lang="ts" setup>
const props = defineProps({
blok: {
type: Object,
required: true,
},
})
</script>
您需要添加Complete Class Names。
由于您的代码中没有 w-1/2
,TW 不会生成 class.
您可以通过 adding the class to safelist 解决此问题。
文档: https://tailwindcss.com/docs/content-configuration#safelisting-classes
module.exports = {
safelist: ['w-1/2'],
//...
}
然后 w-1/2
实用程序将生成,无论它是否出现在您的代码中。
我正在尝试开发一些将由我们的内容编辑器在 Storyblok 中使用的组件,并且有一个用例,我们希望通过 props 定义布局属性(使用 Tailwind 的 classes)来自 Storyblok 组件。
举个例子,
width
道具,给出 w-1/2
的值,这是一个 Tailwind class。正如您在右侧看到的,class 很好地应用于元素,但对页面没有实际影响。我已经对许多其他 classes 进行了相同的尝试(无论是背景颜色还是边框颜色还是文本样式等,我都尝试使用 Tailwind classes 作为来自 Storyblok 的道具,但没有用)。
我唯一的猜测是 Nuxt 是一个服务器端应用程序,CSS 在构建时编译,因此任何新的 class 绑定到 DOM 都不会反映实际情况CSS他们所代表的。这是正确的吗?如果是,是否有办法实现这一点并发挥作用?
widthSetter
组件的代码就这么简单
<template>
{{blok.width}}
<div v-editable="blok" :class="[ blok.width ]">
<component
v-for="value in blok.blocks"
:key="value._uid"
:is="value.component"
:blok="value"
/>
</div>
</template>
<script lang="ts" setup>
const props = defineProps({
blok: {
type: Object,
required: true,
},
})
</script>
您需要添加Complete Class Names。
由于您的代码中没有 w-1/2
,TW 不会生成 class.
您可以通过 adding the class to safelist 解决此问题。
文档: https://tailwindcss.com/docs/content-configuration#safelisting-classes
module.exports = {
safelist: ['w-1/2'],
//...
}
然后 w-1/2
实用程序将生成,无论它是否出现在您的代码中。