如何在vscode里将px转rem,而且还得爽!

自从新版移动端IM界面改用rem适配,效果实在太棒了。所以,接下来的主要工作会将一些核心页面,也从px向rem转移。

然,一直用惯了VSCODE,再加上设计稿等诸多原因,如果真想一下子从rem上编码着实还是很困难。因此,一般而言,都是先订一个基准大小,最后根据这个大小进行转换。

可是,搜遍了整个VSCODE市场,实在找不到一个能够满足我风格的方案,至少得这样:

  • 输入 12px > Tab > .1rem
  • 整个文档进行转换

故,造了一个轮子,名曰:cssrem

cssrem.gif

配置

基准 font-size: 16px,但你可以通过以下配置进行修改:

打开 ctrl+, 用户配置界面(或项目配置),只有三个配置项:

  • cssrem.rootFontSize 基准font-size(单位:px),默认:16。
  • cssrem.fixedDigits px转rem小数点最大长度,默认:6。
  • cssrem.autoRemovePrefixZero 自动移除0开头的前缀,默认:true。(至少我不想看到
    0 默认是去掉的)

VSCODE插件开发

本来文章可以结束了,但是又想好像VSCODE自己开发插件又简单、又很爽,不得再码几字。

插件开发指南 写得非常细,虽然都是英文的,但看起来不会很累。我想最麻烦可能是对各种接口的认知了。

如果你对Typescript很熟的话,那么开发vscode插件也信手拈来,再简单不过。

而cssrem最核心是如何实现动态创建Snippet,就是实现 CompletionItemProvider 接口就可以了。

export class CssRemProvider implements vscode.CompletionItemProvider {

    provideCompletionItems (document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): Thenable<vscode.CompletionItem[]> {

        return new Promise((resolve, reject) => {
            // 构建一个Snippet
            const item = new vscode.CompletionItem(`${res.pxValue}px -> ${res.rem}`, vscode.CompletionItemKind.Snippet);
            // 指定要插入的新文本
            item.insertText = res.rem;
            return resolve([item]);

        });
    }
}

如果想了解 [cssrem] 更多细节可以参考 github 源码

以上!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 了解真实的『REM』手机屏幕适配rem 作为一个低调的长度单位,由于手机端网页的兴起,在屏幕适配中得到重用。 使用...
    张宪宇阅读 2,296评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,253评论 19 139
  • H5-WebApp 自适应方案 - rem 对于WebApp来说,为了更通用地满足各机型屏幕的自适应布局要求,我们...
    nick2046阅读 8,543评论 4 35
  • 炎魔乍起,风神缠斗,云卷云舒时候。 便行来,看林木葳蕤,栀子香透, 更有野渠清澈,懒系轻舟。 黄犬酣卧,老农负手,...
    四夕山人阅读 249评论 0 4
  • 2017/11/28「能量时间1182天」 能量豆丁公寓 《你有未来吗?~未来能量世界打算考核你的项目有几多?》 ...
    陈艳霞小树妈阅读 211评论 0 0