首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何生成字体大小单位作为em而不是rem在windicss?

如何生成字体大小单位作为em而不是rem在windicss?
EN

Stack Overflow用户
提问于 2022-01-30 11:29:42
回答 1查看 615关注 0票数 1

使用vuejs项目时,我发现它生成字体大小作为rem单元.例如:

代码语言:javascript
复制
<div class="text-sm">Test</div>

生成css作为

代码语言:javascript
复制
.text-sm {
    font-size: .875rem;
    line-height: 1.25rem;
}

有没有办法像他们那样产生尺寸呢?所以font-size: .875em

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-30 18:03:09

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

对于后者,您可以查看Tailwind GitHub问题。

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

演示:https://play.tailwindcss.com/XFYT5WFump

(不是我的,而是在github问题上)

插件的用法是

代码语言:javascript
复制
em:text-sm

,它生成以下输出,

代码语言:javascript
复制
.em\:text-sm {
    font-size: 0.875em;
    line-height: 1.25em;
}

插件的代码是,

代码语言:javascript
复制
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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70914182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档