css之px自動轉rem—“懶人”必備


作為一名前端開發,尤其是在做移動端適配時,rem是我們經常用到的單位,它的好處大家可以自行搜索,網上已經有很多了。
但是我們再將設計稿上的px轉換成rem時,得手動的去計算,這是一個很耗時、費力的過程,有沒有什么辦法可以“解放”我們呢?(原諒我的懶~)

1.CSS處理器

Sass、LESS以及PostCSS這樣的處理器都可以處理。

Sass(使用Sass的函數、混合宏這些功能來實現):
@function px2em($px, $base-font-size: 16px) { @if (unitless($px)) { @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels for you"; @return px2em($px + 0px); // That may fail. } @else if (unit($px) == em) { @return $px; } @return ($px / $base-font-size) * 1em; }
Sass(使用Sass的混合宏):
@mixin px2rem($property,$px-values,$baseline-px:16px,$support-for-ie:false){ //Conver the baseline into rems $baseline-rem: $baseline-px / 1rem * 1; //Print the first line in pixel values @if $support-for-ie { #{$property}: $px-values; } //if there is only one (numeric) value, return the property/value line for it. @if type-of($px-values) == "number"{ #{$property}: $px-values / $baseline-rem; } @else { //Create an empty list that we can dump values into $rem-values:(); @each $value in $px-values{ // If the value is zero or not a number, return it @if $value == 0 or type-of($value) != "number"{ $rem-values: append($rem-values, $value / $baseline-rem); } } // Return the property and its list of converted values #{$property}: $rem-values; } }

上面的方法,我們還得去額外學習sass這類的書寫規則,也需要配置,雖然很簡單,但是能不能更簡單就更簡單呢?

2.CSSREM

這是插件是flashlizi為sublime text編寫的一個插件,用起來真的很方便!我們可以在GitHub上看到。

下面我介紹一下,如何配置:

2.1 我們可以在GitHub上下載所依賴的文件;
2.2 打開Sublime Text,進入packages目錄(Sublime Text -> Preferences -> Browse Packages);
2.3 將cssrem-master文件夾放在上一步打開的目錄中,重啟sublime text即可生效;
我們也可以修改默認配置:
打開cssrem-master文件夾下的cssrem.sublime-settings文件,進行修改
{
    "px_to_rem": 40, //px轉rem的單位比例,默認為40 "max_rem_fraction_length": 6, //px轉rem的小數部分的最大長度。默認為6。 "available_file_types": [".css", ".less", ".sass",".html"] //啟用此插件的文件類型。默認為:[".css", ".less", ".sass"] }

實際測試:
新建一個.css文件:


11.png


按tab鍵,得到如下結果:


22.png


是不是很方便,快動手去嘗試吧~

最后,附上 微網站—使用flexible.js實現移動端設備適配 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM