You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3项目中使用Tailwind3动态加载HTML时尺寸类不生效的问题求助

Vue3项目中使用Tailwind3动态加载HTML时尺寸类不生效的问题求助

大家好,我最近在开发Vue3 + Tailwind3的项目时遇到了一个棘手的问题,想请教一下各位:

静态写在Vue模板里的元素,Tailwind的所有样式类都能正常生效,包括尺寸类。比如下面这段代码:

<template>
  <div class="w-48 h-[200px] bg-blue-500">
    <div>I was resized</div>
  </div>
</template>

这里的w-48、h-[200px]和bg-blue-500都能正确应用,元素有预期的宽高和蓝色背景。

但当我把这段HTML内容放到JSON文件(或者从数据库加载),再通过v-html动态渲染时,只有尺寸类完全不生效,其他样式类(比如背景色)却正常工作。

动态加载的具体实现:

首先是我的components.json文件内容:

[
  {
    "id": 1,
    "html_code": "<div class=\"w-48 h-[200px] bg-blue-500\"><div>I was resized</div></div>"
  }
]

然后在Vue组件里这样加载和渲染:

<script setup>
import componentsArray from './components.json'
</script>

<template>
  <div v-for="component in componentsArray" :key="component.id">
    <div v-if="component.html_code" v-html="component.html_code"></div>
  </div>
</template>

渲染结果是:元素显示蓝色背景,但宽高完全没有应用w-48和h-[200px]的规则,就像这两个类根本不存在一样。

我的Tailwind配置

我已经开启了JIT模式,并且把JSON文件加入了content扫描路径,tailwind.config.js内容如下:

export default {
  mode: 'jit',
  important: true,
  content: [
    './src/**/*.{vue,js,ts,jsx,tsx,json,html}',
    './public/json/**/*.json',
    './public/**/*.html',
  ],
  // 其他主题、插件配置...
}

我试过清空缓存重新构建,也确认了JSON文件的路径是对的,但问题依然存在。为什么只有尺寸类在动态加载的HTML里不生效?其他类(比如颜色、间距)都没问题。有没有办法让Tailwind正确识别这些动态内容里的尺寸类?

折腾了好几个小时还是没头绪,求各位大佬帮忙分析一下原因,给出解决办法!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 13:35:29