viewport和移動端布局總結


 

一、px與視口

1.像素:一個像素表示了計算機屏幕所能顯示的最小區域,分為css像素(css中使用的一個抽象單位)和物理像素(只與設備的硬件密度有關)

2.視口--理想視口(理想的布局視口、在移動設備中指設備的分辨率===>給定設備物理像素的情況下,最佳的布局視口)1css 像素 = 物理像素/分辨率

在meta標簽中會將width設置為decive-width,即將布局視口設置成了理想的視口

 

當屏幕大小改變時,更新當前的寬度

 

 

 3.px與自適用

通常pc端的布局視口是980px,移動端iphone6是375,現在有一個750px*1134px的視覺稿,那么有:

pc:1 css 像素 = 750/980 = 0.76px;   iphpne6:1css = 750/375=2px

因此如果只在css中通過px作為長度和寬度的話,就會使得結果無法通過一套樣式實現各端的自適應。

二、媒體查詢

使用@media媒體查詢可以針對不同的媒體類型定義不同的樣式,尤其是響應式頁面,可以針對不同屏幕的大小編寫多套樣式,從而達到自適用的效果。

 

缺點是:瀏覽器的大小改變時,需要改變的樣式太多,多套代碼會繁瑣。

三、百分比

除了用px結合媒體查詢實現響應式布局外,也可以使用百分比單位%來實現響應式的效果。

1、百分比的具體分析

子元素的height和width使用的百分比是相對於子元素的直接父元素;

子元素的top和bottom使用的百分比是相對於直接非static定位父元素的height;

子元素的left和right使用的百分比是相對於直接非static定位父元素的width;

子元素的padding和margin使用的百分水平方向與垂直方向都是相對於直接父元素的width;

例如實現一個長寬為4:3的長方形

 

 用較多的百分比的缺點:計算困難,使布局變得復雜。

四、自適應場景下的rem解決方案

1.rem單位是一個靈活的、可擴展的單位,由瀏覽器轉化像素並顯示。與em單位不同的是rem單位無論嵌套層級如果,都只是相對於瀏覽器的根元素(HTML元素)的font-size。默認情況下,html元素的font-size為16px,即1rem = 16px 

html{font-size:62.5%}  1rem = 16 *0.625 = 10px

2.通過rem來實現響應式布局

rem單位是相對於根元素html的font-size來決定大小的,即根元素的font-size提供了一個基准,當頁面的size發生改變時,只需要改變font-size的值,那么以rem固定單位的元素的大小也會發生響應的變化。即通過rem來實現響應式的布局,只需要根據視圖容器的大小,動態改變font-size即可。

如果我們要將所有的布局單位都用rem表示,高效的方法是在css中我們還是用px來表示元素的大小,最后編寫完css代碼之后,將css文件的所有px單位,轉化為rem單位。使用px2rem,預處理以px為單位的css文件,處理后將所有的px變成rem單位,可以通過webpack loader的形式和webpack中使用postcss plugin來實現。

五、通過vw/vh來實現自適應

任意層級元素,在使用vw單位的情況下,1vw都等於視圖寬度的百分之一。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM