自重新版移動端IM界面改用rem適配,效果實在太棒了。因此,接下來的主要工做會將一些核心頁面,也從px向rem轉移。css
然,一直用慣了VSCODE,再加上設計稿等諸多緣由,若是真想一會兒從rem上編碼着實仍是很困難。所以,通常而言,都是先訂一個基準大小,最後根據這個大小進行轉換。git
但是,搜遍了整個VSCODE市場,實在找不到一個可以知足我風格的方案,至少得這樣:github
Tab
> .1rem故,造了一個輪子,名曰:cssrem。typescript
默認基準 font-size: 16px
,但你能夠經過如下配置進行修改:ide
打開 ctrl+,
用戶配置界面(或項目配置),只有三個配置項:編碼
cssrem.rootFontSize
基準font-size(單位:px),默認:16。cssrem.fixedDigits
px轉rem小數點最大長度,默認:6。cssrem.autoRemovePrefixZero
自動移除0開頭的前綴,默認:true。(至少我不想看到原本文章能夠結束了,可是又想好像VSCODE本身開發插件又簡單、又很爽,不得再碼幾字。spa
插件開發指南 寫得很是細,雖然都是英文的,但看起來不會很累。我想最麻煩多是對各類接口的認知了。插件
若是你對Typescript很熟的話,那麼開發vscode插件也信手拈來,再簡單不過。ssr
而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 源碼。
以上!