相對於html元素的字體大小
。好比,根元素(html)設置font-size=12px; 非根元素設置width:2rem; 則換成px表示就是24px。css
/\* 根html 爲 12px \*/ html { font-size: 12px; } /\* 此時 div 的字體大小就是 24px \*/ div { font-size: 2rem; }
媒體查詢(Media Query)是CSS3新語法。html
@media
查詢,能夠針對不一樣的媒體類型定義不一樣的樣式@media mediatype and|not|only (media feature) { CSS-Code; }
(1) mediatype 查詢類型前端
將不一樣的終端設備劃分紅不一樣的類型,稱爲媒體類型node
(2) 關鍵字git
關鍵字將媒體類型或多個媒體特性鏈接到一塊兒作爲媒體查詢的條件。github
(3) 媒體特性web
每種媒體類型都具體各自不一樣的特性,根據不一樣媒體類型的媒體特性設置不一樣的展現風格。咱們暫且瞭解三個。npm
注意他們要加小括號包含移動web開發
(4) 媒體查詢書寫規則瀏覽器
注意: 爲了防止混亂,媒體查詢咱們要按照從小到大或者從大到小
的順序來寫,可是咱們最喜歡的仍是從小到大來寫,這樣代碼更簡潔
/* 1. 媒體查詢通常按照從大到小或者 從小到大的順序來 */ /* 2. 小於540px 頁面的背景顏色變爲藍色 */ @media screen and (max-width: 539px) { body { background-color: blue; } } /* 3. 540 ~ 970 咱們的頁面顏色改成 綠色 */ /* @media screen and (min-width: 540px) and (max-width: 969px) { body { background-color: green; } } */ @media screen and (min-width: 540px) { body { background-color: green; } } /* 4. 大於等於970 咱們頁面的顏色改成 紅色 */ @media screen and (min-width: 970px) { body { background-color: red; } } /* 5. screen 還有 and 必須帶上不能省略的 */ /* 6. 咱們的數字後面必須跟單位 970px 這個 px 不能省略的 */
CSS 是一門非程序式語言,沒有變量、函數、SCOPE(做用域)等概念。
Less安裝
Less 變量
變量是指沒有固定的值,能夠改變的。由於咱們CSS中的一些顏色和數值等常用。
@變量名:值;
@color: pink;
Less 編譯 vocode Less 插件
Less 嵌套
// 將css改成less #header .logo { width: 300px; } #header { .logo { width: 300px; } }
若是碰見 (交集|僞類|僞元素選擇器) ,利用&進行鏈接
a:hover{ color:red; } a{ &:hover{ color:red; } }
Less 運算
/\*Less 裏面寫\*/ @witdh: 10px + 5; div { border: @witdh solid red; } /\*生成的css\*/ div { border: 15px solid red; } /\*Less 甚至還能夠這樣 \*/ width: (@width + 5) \* 2;
技術方案:
總結:
1. 假設設計稿是750px 2. 假設咱們把整個屏幕劃分爲15等份(劃分標準不一能夠是20份也能夠是10等份) 3. 每一份做爲html字體大小,這裏就是50px 4. 那麼在320px設備的時候,字體大小爲320/15就是 21.33px 5. 用咱們頁面元素的大小除以不一樣的 html字體大小會發現他們比例仍是相同的 6. 好比咱們以750爲標準設計稿 7. 一個100_100像素的頁面元素在 750屏幕下, 就是 100/ 50 轉換爲rem 是 2rem_2rem 比例是1比1 8. 320屏幕下, html字體大小爲21.33 則 2rem= 42.66px 此時寬和高都是 42.66 可是寬和高的比例仍是 1比1 9. 可是已經能實現不一樣屏幕下 頁面元素盒子等比例縮放的效果
總結:
手機淘寶團隊出的簡潔高效 移動端適配庫----`flexible.js` 咱們不再須要在寫不一樣屏幕的媒體查詢,由於裏面js作了處理 它的原理是把當前設備劃分爲10等份,可是不一樣設備下,比例仍是一致的。 咱們要作的,就是肯定好咱們當前設備的html 文字大小就能夠了 好比當前設計稿是 750px, 那麼咱們只須要把 html 文字大小設置爲 75px(750px / 10) 就能夠 裏面頁面元素rem值: 頁面元素的px 值 / 75 剩餘的,讓flexible.js來去算
github地址:https://github.com/amfe/lib-flexible
總結:
VSCode px 轉換rem 插件 cssrem