1. 程式人生 > >webstorm下的sass自動編譯和移動端自適應實踐

webstorm下的sass自動編譯和移動端自適應實踐

info www .html ted 嘗試 ini 移動 工作文件夾 data

http://www.fawwheel.com/shahramLu/p/6477731.html

webstorm下的sass自動編譯和移動端自適應實踐

1、安裝Ruby

2、安裝sass

3、webstorm配置file watcher

4、移動端自適應

1、安裝Ruby

  安裝Ruby,有多種方式,打開官網下載

技術分享

因為,使用的是window選擇RubyInstall,下載地址

技術分享

RubyInstall下載地址

技術分享

選擇對應系統的版本,下載完成,安裝

技術分享

添加到path,建議勾上,安裝完成後,打開開始面板,會有一個Start Command Prompt with Ruby,命令行工具。

2、安裝sass

  個人偏好sass,也可以選擇less或stylus,打開上一步安裝的Ruby命令行

技術分享

輸入gem list 看一下安裝了那些包,接著gem install sass

技術分享

3、webstorm配置file watcher

  打開webstorm,File -> settings -> Tools -> File Watchers

技術分享

選擇+號,新建scss

技術分享

在輸出參數位置,一般會加上--style *;展開格式nestedexpandedcompactcompressed,最傳統的選擇--style expanded,括號上下換行

工作文件夾和輸出位置,可以根據項目來選擇,放在同級目錄,或者父級,點擊insert macros

常見的有文件路徑,父文件路徑等等,可以自己嘗試下,加深理解

4、移動端自適應

  最後,來個實戰,基於單頁面,做到了大多數手機屏幕很好的適應,包括DPI為2 和 DPI為3的都可以適應

選擇淘寶的開源庫lib-flexible,參考airen大神寫的文章

因為內容較少,只是宣傳頁面,所以沒有選擇vue這類框架

直接HTML走起,因為使用了淘寶開源庫,就不需要常用的

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

直接在head下引入阿裏雲的cdn

<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script>

技術分享

搭配sass的mixin效果很棒

 1 @mixin font-dpr($font-size) {
 2   font-size: $font-size;
 3 
 4   [data-dpr="2"] & {
 5     font-size: $font-size * 2;
 6   }
 7 
 8   [data-dpr="3"] & {
 9     font-size: $font-size * 3;
10   }
11 }
12 
13 $baseFontSize: 75;
14 $FontSize: 16;
15 @mixin px2rem($name, $px1){
16   #{$name}: ($px1 / $baseFontSize) * 1rem;
17 }
18 
19 @mixin bg-image($url) {
20   background-image: url($url + "@2x.png");
21   @media (-webkit-min-device-pixel-ratio: 3), (min-device-pixel-ratio: 3) {
22     background-image: url($url + "@3x.png");
23   }
24 }

對於font-size,需要使用px, 因為rem會導致,出現15.55px奇葩尺寸,中文點陣一般常用是12、14、16px

[email protected]@3x後綴

@include px2rem(padding, 25);  // 生成
padding: 0.33333rem;

@include bg-image(‘bubble‘);  // 生成
.wrapper .bubble {
  background-image: url("[email protected]");
}
@media (-webkit-min-device-pixel-ratio: 3), (min-device-pixel-ratio: 3) {
  .wrapper .bubble {
    background-image: url("[email protected]");
  }
}

@include font-dpr(18px);  // 生成
.content {
  font-size: 18px;
}
[data-dpr="2"] .content {
  font-size: 36px;
}
[data-dpr="3"] .content {
  font-size: 54px;
}

其中data-dpr是屏幕的DPI,詳細代碼查看GitHub

posted @ 2017-02-28 10:35 風風coding 閱讀(...) 評論(...) 編輯 收藏

webstorm下的sass自動編譯和移動端自適應實踐