rem即是以html文件中font-size的大小的倍數rem佈局的原理:通過媒體查詢設置不同屏幕寬度下的html的font-size大小,然後在css佈局時用rem單位取代px,從而實現頁面元素大小的動態適配,做出更漂亮整潔的頁面rem佈局的好處:1.頁面整潔2.動態適配缺點:1.需要計算rem, ...
rem即是以html文件中font-size的大小的倍數
rem佈局的原理:通過媒體查詢設置不同屏幕寬度下的html的font-size大小,然後在css佈局時用rem單位取代px,從而實現頁面元素大小的動態適配,做出更漂亮整潔的頁面
rem佈局的好處:
1.頁面整潔
2.動態適配
缺點:
1.需要計算rem,但可以通過自動轉化單位插件彌補
less:是一門css擴展語言,也成為css預處理器,引入了變數,mixin(混入)、運算以及函數等功能
css弊端:1.冗餘度高 2.維護成本高 3.沒有很好的計算能力
less變數定義:@變數名:值;
值可以是任意css屬性值,如顏色大小
註意:1.大小寫區分 2.不能以數字開頭 3.不能有特殊符號
less變數引用,直接輸入@變數名即可
less嵌套
子元素樣式直接寫到父元素嵌套里
例div { a{xxxx} } 代表div a {}; div { &hover {} } 代表div:hover
less運算
less可以使用+ - * / 運算符號
顏色大小都可以運算
運算符左右必須空格隔開
兩個數參與運算,只有一個有單位,則結果單位與其相同
兩個數參與運算,量個數都有單位且不一樣,則結果與第一個數的單位相同
註:less中可以用@import引入其他less文件 如@import:url(xxxx.less);
基本步驟:
1.首先寫一個common.less文件,專門用於媒體查詢,其中常用的屏幕大小單位有320px 360px 375px 384px 400px 414px 424px 480px 540px 720px 750px。該文件的作用是設置不同大小屏幕下的font-size大小,其中倍數可以為15或者10,可以設置變數表示方便書寫
1 //利用媒體查詢按照同一比例(10或者15)設置不同屏幕尺寸下的font-style大小 2 //利用@+變數名:變數值 設置變數,提高效率 3 @no:15; 4 @media screen and (min-width: 320px) { 5 html { 6 font-size: 320px / @no; 7 } 8 } 9 @media screen and (min-width: 360px) { 10 html { 11 font-size: 360px / @no; 12 } 13 } 14 @media screen and (min-width: 375px) { 15 html { 16 font-size: 375px / @no; 17 } 18 } 19 @media screen and (min-width: 384px) { 20 html { 21 font-size: 384px / @no; 22 } 23 } 24 @media screen and (min-width: 400px) { 25 html { 26 font-size: 400px / @no; 27 } 28 } 29 @media screen and (min-width: 414px) { 30 html { 31 font-size: 414px / @no; 32 } 33 } 34 @media screen and (min-width: 424px) { 35 html { 36 font-size: 424px / @no; 37 } 38 } 39 @media screen and (min-width: 480px) { 40 html { 41 font-size: 480px / @no; 42 } 43 } 44 @media screen and (min-width: 540px) { 45 html { 46 font-size: 540px / @no; 47 } 48 } 49 @media screen and (min-width: 720px) { 50 html { 51 font-size: 720px / @no; 52 } 53 } 54 @media screen and (min-width: 750px) { 55 html { 56 font-size: 750px / @no; 57 } 58 }
2.然後再寫樣式less文件,註意要先設置好當前測量頁面的font-size大小,因為我們是根據某個頁面來測量元素大小,所以要根據這個頁面先設置好當前的rem倍數的變數,如750/15 =50.同時設置好頁面的最小寬度320px。書寫樣式時,大部分px單位都需要轉為rem,可以通過運算符或者插件表示。
切記通過import引入媒體查詢文件,否則頁面動態適配無法生效
1 @import:url(common.css) 2 @baseFont: 50;
總結:rem佈局的靈魂在於通過媒體查詢動態修改font-size,再利用rem與其鏈接達到動態適配的效果。所以重點是媒體查詢的書寫以及元素大小單位的書寫,而利用less可以輕鬆實現計算,當然也可以利用阿裡巴巴的flexible.js省略媒體查詢一步,從而不需要less擴展語言。