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

ASP.NET Core Razor页面中,Tailwind的calc()使用@model为何不生效?

解决Razor页面中Tailwind动态计算padding不生效的问题

问题根源:Tailwind CSS是静态扫描类名生成样式的,你在类名里用@Model.MainClassification.Count动态生成的calc表达式,Tailwind编译时无法识别这个动态值,因此不会生成对应的padding样式,导致页面没有预期变化。

解决方案1:用内联样式替代Tailwind的py类

把动态计算的上下padding值写到内联样式中,浏览器会直接解析计算结果:

@foreach (var item in Model.MainClassification)
{
    var paddingY = $"calc(27rem/{Model.MainClassification.Count})";
    <button class="flex justify-center items-center m-auto px-36" style="padding-top: @paddingY; padding-bottom: @paddingY;">@item</button>
}

注意:你原来写的align-middle是无效的Tailwind类,垂直居中应该用items-center。

解决方案2:提前计算值再绑定

先在Razor代码块里计算好padding值,再应用到元素上,代码更简洁:

@{
    var count = Model.MainClassification.Count;
    var pyValue = count > 0 ? $"calc(27rem/{count})" : "27rem";
}

@foreach (var item in Model.MainClassification)
{
    <button class="flex justify-center items-center m-auto px-36" style="padding-block: @pyValue;">@item</button>
}

这里用padding-block可同时设置上下padding,减少重复代码。

内容的提问来源于stack exchange,提问作者Mustafa Kaya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:57:47