vue中利用scss實現總體換膚和字體大小設置

1、前言javascript

 利用Sass預處理實現換膚和字體大小調整。css

 思路及達到的效果:字體大小的適配使用window.devicePixelRatio的值和須要調整的差量進行控制。頁面初始化是的字體適配能夠根據devicePixelRatio和css3 media進行適配.html

 實現方法:1.利用全局變量和bus事件,使用js方式調整字體和顏色(這裏暫不討論);java

      2.利用scss預處理方式實現css3

        主題更換:使用setAttribute()爲html根節點添加屬性,根據屬性的值再進行不一樣主題的切換;函數

        字體大小的調整:字體

          第一種方法利用不一樣的class名調用相應的方法傳入不一樣的參數進行控制,對不一樣的字體進行差量調整(優勢:能夠對不一樣的字體大小進行調整,缺點:class可能會不少);htm

          第二種方法利用一個方法、一個參數進行總體(優勢:方法、參數簡單,缺點:只能對一種字體大小進行調整).blog

      這裏採用第一種方式進行實現。事件

2、實現步驟

  Sass的安裝和環境配置不作介紹

  demo文件目錄:

  

  1.自定義的一些變量 

  

//顏色定義
$background-color-theme: #2474a5;//背景主題顏色默認
$background-color-theme1: red;//背景主題顏色1
$background-color-theme2: #652BF5;//背景主題顏色2
$background-color-theme3: deepskyblue;//背景主題顏色3
$background-color-themesec: #edc148;//背景次要主題顏色
//字體大小定義
$font_size_12:12px;
$font_size_14:14px;
$font_size_16:16px;
$font_size_18:18px;
$font_size_20:20px;
 //字體調整的差量
$size:0;                     
$size_4:1px;
$size_6:2px;
$size_8:3px;             

 2.使用@mixin封裝對應的方法,這些方法都經過@include  方法名(arg) 來實現調用.   

@mixin font_color($color){/*經過該函數設置字體顏色,後期方便統一管理;*/
  color:$color;    //默認時的color
  [data-theme="theme1"] & {
    color:$font-color-theme1;   

  }
  [data-theme="theme2"] & {
    color:$font-color-theme2;
  }
  [data-theme="theme3"] & {
    color:$font-color-theme3;
  }
}
@mixin add_size($val,$size){
//這裏個人$size分了三種大小分別爲1px,2px,3px進行差量增長,再根據不一樣的dpr來加載不一樣的css
  [data-size="0"][data-dpr="1"] & {
    font-size:($val+$size) * 1.8 ;
  }
  [data-size="4"][data-dpr="1"] & {
    font-size:($val+$size_4) * 1.8 ;
  }
  [data-size="6"][data-dpr="1"] & {
    font-size:($val+$size_6) * 1.8 ;
  }
  [data-size="8"][data-dpr="1"] & {
    font-size:($val+$size_8) * 1.8 ;
  }
  [data-size="0"][data-dpr="2"] & {
    font-size:($val+$size) * 1.8 ;
  }
  [data-size="4"][data-dpr="2"] & {
    font-size:($val+$size_4) * 1.8 ;
  }
  [data-size="6"][data-dpr="2"] & {
    font-size:($val+$size_6) * 1.8 ;
  }
  [data-size="8"][data-dpr="2"] & {
    font-size:($val+$size_8) * 1.8 ;
  }
  [data-size="0"][data-dpr="3"] & {
    font-size:($val+$size) * 1.8 ;
  }
  [data-size="4"][data-dpr="3"] & {
    font-size:($val+$size_4) * 1.8 ;
  }
  [data-size="6"][data-dpr="3"] & {
    font-size:($val+$size_6) * 1.8 ;
  }
  [data-size="8"][data-dpr="3"] & {
    font-size:($val+$size_8) * 1.8 ;
  }
}

  

3.字體調整方法的調用

 

 

 

 

4.主題的更換

 

 

根據changeTheme方法傳入的參數,改變動節點中data-theme的屬性值。當調用到bg_color()方法時使用[]css屬性選擇器進行'判斷'加載對應的樣式(其它方法同理)

 3、總結

  1.字體大小和換膚

  2.在設置字體大小時,適配不一樣分辨率屏幕及初始化字體的適配

  2.保存設置操做後,初始化時應該先動態添加根節點的屬性data-theme、data-size、data-dpr

相關文章
相關標籤/搜索