Tailwind CSS v4的任意值类(方括号 [])在Next.js 16与 Turbopack下未渲染

前端开发 2026-07-11

我正在使用最新的 Next.js 16.1.6Tailwind CSS v4.2.1React 19。在使用Turbopack (next dev --turbo) 启动开发服务器时,像 aspect-[12/5]z-[100]h-[80vh] 这样的任意值类在HTML DOM中虽然正确存在,但相应的CSS规则并未通过JIT引擎生成。

当这些类用于导入了大型第三方库(如 Swiper.js)的组件时,这种情况似乎更容易发生。

这是Tailwind v4的 Turbopack扫描器的已知问题吗?是否有可靠的方法确保这些关键的布局属性被强制应用?

解决方案

经过大量调试,似乎是在Next.js 16.1.6的增量构建过程中,Turbopack(基于Rust的编译器)Tailwind v4的 JIT引擎之间交互的一个间歇性问题。对于应用于导入了大型第三方库(如 Swiper.js)的组件,扫描器有时会错过方括号内的令牌 []

The Solution: The "Native Bypass"

@tailwindcss/postcss 或Next.js修复之前,最稳健的架构层面的权宜之计,是通过使用 React原生内联样式 来绕过Tailwind编译器,以对关键结构属性(如纵横比、Z-Index和固定高度)进行强制控制:

TypeScript

// Instead of <div className="aspect-[12/5] z-[100]">
<div style={{ aspectRatio: "12/5", zIndex: 100 }}>

这确保浏览器无论构建工具的JIT状态如何,都会强制执行布局,同时你仍然可以使用Tailwind来实现像内边距、颜色或flexbox这样的常用工具类。

我已经就这个错误在这里提交了官方问题:https://github.com/tailwindlabs/tailwindcss/issues/19825

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章