1. 程式人生 > 實用技巧 >移動端開發rem佈局之less+媒體查詢佈局的原理步驟和心得

移動端開發rem佈局之less+媒體查詢佈局的原理步驟和心得

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} } 代表diva {}; 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,可以設定變量表示方便書寫

佛山vi設計https://www.houdianzi.com/fsvi/ 豌豆資源搜尋大全https://55wd.com

//利用媒體查詢按照同一比例(10或者15)設定不同螢幕尺寸下的font-style大小
//利用@+變數名:變數值  設定變數,提高效率
@no:15;
@media screen and (min-width: 320px) {
    html {
        font-size: 320px / @no;
    }
}
@media screen and (min-width: 360px) {
    html {
        font-size: 360px / @no;
    }
}
@media screen and (min-width: 375px) {
    html {
        font-size: 375px / @no;
    }
}
@media screen and (min-width: 384px) {
    html {
        font-size: 384px / @no;
    }
}
@media screen and (min-width: 400px) {
    html {
        font-size: 400px / @no;
    }
}
@media screen and (min-width: 414px) {
    html {
        font-size: 414px / @no;
    }
}
@media screen and (min-width: 424px) {
    html {
        font-size: 424px / @no;
    }
}
@media screen and (min-width: 480px) {
    html {
        font-size: 480px / @no;
    }
}
@media screen and (min-width: 540px) {
    html {
        font-size: 540px / @no;
    }
}
@media screen and (min-width: 720px) {
    html {
        font-size: 720px / @no;
    }
}
@media screen and (min-width: 750px) {
    html {
        font-size: 750px / @no;
    }
}

2.然後再寫樣式less檔案,注意要先設定好當前測量頁面的font-size大小,因為我們是根據某個頁面來測量元素大小,所以要根據這個頁面先設定好當前的rem倍數的變數,如750/15 =50.同時設定好頁面的最小寬度320px。書寫樣式時,大部分px單位都需要轉為rem,可以通過運算子或者外掛表示。
切記通過import引入媒體查詢檔案,否則頁面動態適配無法生效

@import:url(common.css)
@baseFont: 50;

總結:

rem佈局的靈魂在於通過媒體查詢動態修改font-size,再利用rem與其連結達到動態適配的效果。所以重點是媒體查詢的書寫以及元素大小單位的書寫,而利用less可以輕鬆實現計算,當然也可以利用阿里巴巴的flexible.js省略媒體查詢一步,從而不需要less擴充套件語言。