css - 如何在windicss中生成字体大小单位为em而不是rem?

标签 css tailwind-css windicss

将windicss与vuejs元素一起使用,我发现它生成的字体大小为rem单位。例如

<div class="text-sm">Test</div>

生成CSS为

.text-sm {
    font-size: .875rem;
    line-height: 1.25rem;
}

有什么方法可以生成 em 尺寸吗?所以字体大小:.875em

最佳答案

可能有几种方法(手动扩展间距以使用 em 或创建一个变体以将 rem 转换为 em)。

对于后者,您可以查看这个 Tailwind GitHub 问题。
https://github.com/tailwindlabs/tailwindcss/discussions/3105


演示:https://play.tailwindcss.com/XFYT5WFump
(不是我的,而是在 github 问题中)

插件的用法是

em:text-sm

,生成以下输出,

.em\:text-sm {
    font-size: 0.875em;
    line-height: 1.25em;
}

插件的代码是,

const colors = require('tailwindcss/colors')

/// https://github.com/tailwindlabs/tailwindcss/discussions/3105

module.exports = {
  theme: {
    extend: {
      colors: {
        'light-blue': colors.lightBlue,
        cyan: colors.cyan,
      },
    },
  },
  variants: {
    fontSize: ({ after }) => after(['em']),
  },
  plugins: [
    require('tailwindcss/plugin')(function({ addVariant }) {
      addVariant('em', ({ container }) => {
        container.walkRules(rule => {
          rule.selector = `.em\\:${rule.selector.slice(1)}`;
          rule.walkDecls((decl) => {
            decl.value = decl.value.replace('rem', 'em');
          });
        })
      })
    }),
  ],
}

不久前我也创建了一个类似的(“暂时未维护”)插件,
https://github.com/downwindcss/variant-units

所以如果你想支持其他单位,可以查看一下。

关于css - 如何在windicss中生成字体大小单位为em而不是rem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70914182/

相关文章:

html - 向内部 div 添加边距时,较大 div 内定义宽度的 Div 元素会溢出

html - 在列表项旁边创建一条垂直线

php - 为什么我的 <td> 中的字体大小不会增加

jquery - JQuery 中的 addClass 是否会覆盖任何现有的基于 css 类的样式?

css - 响应式 SVG 背景/tailwindcss

vue.js - 编译的 Tailwind CSS 不包括自定义导入的文件

syntax-error - 仅删除 '@apply' 的 Sublime 语法高亮