關於移動端布局

2021-08-04 15:37:17 字數 1201 閱讀 1692

如今手機裝置多種多樣,螢幕大小各不相同,下面說一下如今的幾種移動端布局.

1. 寬度百分比布局 + px布局.

先說一下,這種布局雖然我現在沒有用,但是還是有見到過,這種布局如果你按照750設計圖來做的話其實在主流手機螢幕上展示都挺不錯的,但是如果螢幕非主流的話,那顯示出來的效果就很差了,所以這種布局不建議使用.

2. **查詢 + px布局

這種布局用的話還是可以的,但是**查詢畢竟也是在乙個區間內,而且不同的區間段應該寫多大的px呢?這也是乙個問題.

3. rem布局 + flex布局

ok,說到正題了,這是我現階段採用的布局,關於flex布局,強烈推薦阮一峰的關於flex布局這一章,或者菜鳥教程內的內容也可以,跟阮一峰的一樣。現在重點說一下rem布局.

rem布局的原理

首先說一下rem這個單位,rem這個單位是根據html的根字型來確定的,現在的瀏覽器預設的html根字型是16px,也就是1rem = 16px,你可以做一下實驗:

html

div

這樣最後div呈現出來的寬度其實是100px,知道了這個原理,那麼如果我們使用rem單位布局,然後根據手機螢幕大小改變html的根字型的大小,這樣不就實現了手機螢幕適配嗎?

如何動態改變html根字型的大小.

網上關於這類的js很多,我說一下我正在使用的js,感覺比較簡單而且容易理解:

function

rem(doc, win) else

};if (!doc.addeventlistener) return;

win.addeventlistener(resizeevt, recalc, false);

doc.addeventlistener('domcontentloaded', recalc, false);

}rem(document, window);

一般設計稿都是按照750來給的,750也就是iphone6的設計稿,是實體手機寬度的2倍,所以上面的函式在iphone6上面設定的根字型其實是50px,那樣我們在寫css的時候,直接按照設計稿量出的px單位除以100,然後得出的值就是rem的值,關於rem轉換,sublime和vscode上面有css轉rem的外掛程式,然後也可以寫乙個scss的轉換函式來進行轉換:

@function

rem($px)

移動端布局

預設以寬度為640px的設計稿為基準頁面,然後通過js獲取當前顯示裝置的尺寸,對應的調整 html 標籤的font size大小,從而實現通過以rem為單位的移動端布局適配。function win,doc function layoutcalc html.style.fontsize rem px...

移動端布局

css畫素與裝置畫素 二者的區別在於前者是抽象的,用於瀏覽器渲染頁面,而後者是裝置的最小物理單位。可參考 a pixel is not a pixel is not a pixel 進行理解。視口 移動端瀏覽器有兩個視口,即可見視口與布局視口,二者的區別在於前者為基於移動裝置螢幕的實際寬度,而後者為...

移動端布局

瀏覽器上 用來顯示網頁的那部分區域了 1 設定 view 有 init scale 頁面的初始縮放值 為數字 width viewport的寬度 height viewport的高度 mininum scale 允許使用者縮放最小值 maxinum scale 允許使用者縮放最大值 user sca...