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

如何在Tailwind中为不同字体系列适配不同字号与行高?

Tailwind不同字体对应不同行高的标准解决方法

优先推荐:在主题配置中扩展字体专属字号

这是最贴合Tailwind主题化设计思路的做法,把样式规则统一放在配置里管理,后续维护更省心。

假设你的第二种字体叫font-secondary,可以直接在tailwind.config.js里给它单独定义sm字号的行高:

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      fontSize: {
        // 为secondary字体定制sm字号的行高,示例改成1.25rem
        'sm-secondary': ['1rem', '1.25rem'],
      },
      fontFamily: {
        secondary: ['YourActualSecondaryFont', 'sans-serif'],
      },
    },
  },
}

使用时直接组合类:font-secondary text-sm-secondary,所有用第二种字体的sm文本都会自动应用正确的行高,不用重复写样式。

如果你的字体系统更复杂,也可以用Tailwind的自定义变体关联字体和字号,但上面的方式简单直接,能覆盖大部分场景。

临时快速方案:叠加leading类

如果只是个别地方需要调整,不想改动配置,直接在现有类上叠加leading-*类覆盖行高就行。比如:

<p class="font-secondary text-sm leading-tight">第二种字体的sm文本</p>

这种方式适合零散的样式调整,但多处使用的话还是推荐第一种方案,避免重复代码。

进阶方案:CSS变量+主题配置

如果两种字体的行高差异是系统性的(不止sm字号),可以用CSS变量统一管理:

// tailwind.config.js
module.exports = {
  theme: {
    fontSize: {
      sm: ['1rem', 'var(--sm-line-height)'],
      // 其他字号也可以用变量统一管理
      base: ['1.125rem', 'var(--base-line-height)'],
    },
    fontFamily: {
      primary: ['YourPrimaryFont', 'sans-serif'],
      secondary: ['YourSecondaryFont', 'sans-serif'],
    },
  },
}

然后在全局CSS里通过字体类切换变量值:

.font-primary {
  --sm-line-height: 1.5rem;
  --base-line-height: 1.75rem;
}

.font-secondary {
  --sm-line-height: 1.25rem;
  --base-line-height: 1.6rem;
}

使用时只需要写font-secondary text-sm,变量会自动切换对应的行高,适合复杂的多字体项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 20:05:00