最簡單的移動端適配方案 rem vw 沒有之一

2022-06-19 18:21:12 字數 1811 閱讀 8184

rem 這個單位對於前端來說並不陌生了,在移動端適配方面,我們經常會用到它,通常我們會採用類似**flexible.js 的方案, 寫px,然後通過外掛程式轉化成rem,然後得出一堆小數值的rem單位.**這個方案已經用了很多年,相容性很好,然而現在已經2023年了,許多相容性問題現在不再那麼頭疼了,因此我們現在有了更好的適配方案. 在很早以前,vw 這個單位就已經被列入w3c規範了,如果基本都支援了,vw 表示螢幕的1%,可能有人會問到那跟百分比有什麼區別呢? 通常,很多情況確實可以被百分比替代,但是要知道百分比如果要子n代元素都生效,那得所有父級元素都得相對html,body 100%寬才能有作用,而vw則永遠相對 螢幕1%.說了vw的含義來說說怎麼結合rem適配吧. 這裡直接給出結果,只需一行**即可

html
然後我們即可根據設計稿(前提設計稿是750px的),這樣我們寫1rem即為設計稿上的100px

, 效果如上圖所示,注意:應設定meta為移動端

, 是不感覺很詫異,寫的width:1rem,heigth:1rem的div 就是50px* 50px (iphone6為2倍屏,即對應750px設計稿上的100px*100px) 怎麼搞定的,1句**就能實現,太神奇.不信可以看看上圖或者自己試一下.恩,就是這麼簡單,1句css**就搞定,無需任何的js**.

下面分析下原理吧, 上面我們說了vw表示1%的螢幕寬度,而我們的設計稿通常是750px的,螢幕一共是100vw,對應750px,那麼1px就是0.1333333vw, 為了方便計算,我們放大100倍,同時我們知道另乙個單位rem,rem是相對html元素,為了方便計算,我們取html是100px,通過上面的計算結果1px是0.13333333vw,那麼100px就是13.333333vw了.這樣後面的用rem就很好計算了,這樣就得到13.3333333vw對應100px(750px的 設計稿),然後我們就可以很愉快的寫rem單位了, 由於倍率是100,我們也不需要啥計算外掛程式之類的了,除以100,直接小數點向左移動2位,1rem是100px,那麼10px就是0.1rem,1px就是0.01rem,小學生都會算了, 不需要用postcss-px-to-viewport這種工具轉成一堆小數字特長的rem單位了,而且這個很方便,直接寫rem,並不需要轉換,用了轉換工具 如果想寫px的地方還得設定白名單或者黑名單,這個就不存在這種問題了, 想用相對的就rem,想絕對的就直接寫px即可,並不需要其他的各種設定.是不是很簡單?       改進版:經過一些實踐,發現此方案只能相容手機,甚至連ipad相容都不好,當然,此處的相容不是相容問題,是效果問題,只要相容vw的裝置都能用這個方案,但是由於適配的根本是vw這個, 這個會隨著裝置的寬度越來越大,那麼用rem做單位的元素也會越來越大,以至於如果這個在pc上,那麼沒法預覽了,效果會很差,字太大了.這樣我們可以設定一下當螢幕過大的時候的情況,我們可以加一句**

@media (min-width: 560px) 

}

加上這句**,在pc上效果也很不錯了, 哈哈,如果問為什麼是pc端字型是54px以及為什麼是560px為分界線, 好吧,我也不知道,這個是我自己安裝flexible.js模擬出來的,flexible.js 在560px以上螢幕就是html 雖然改進版不再如上面說的一句**解決,不過也算是兩句**解決了.還是非常簡單的哦,不需要任何的轉化工具. 本人已在公司專案做了實踐,效果可以自行預:meeting.bioon.com/moyan/index… 移動端可掃碼檢視:

最簡單的移動端適配方案

目前最流行的方案當屬 的flexible了,因為之前一直做服務端開發,對前端不是很了解。對於這套方案看了n久還是不太理解,後來自己學習viewport的相關概念,捉摸出一套自己的辦法 至少我沒查到有人這麼幹的 寫在這裡和大家分享一下。其實對於多數的移動h5的適配需求並沒有那麼繁瑣,只要保證和設計稿比...

移動端適配方案

最簡單的移動端適配方案 rem vw 1vw等於螢幕寬度的1 1vh等於螢幕高度的1 通常設計稿為750寬度,螢幕總寬度為100vw 那麼 100vw 750px 1px 1px 100 750 1px就等於0.13333333vw 把單位放大100倍便於計算 html設計稿畫素單位轉換為rem單位...

移動端適配方案

先來看下目前iphone各個型號尺寸和解析度 我們所能看到的手機端瀏覽器的可視視窗大小 viewport分為三種 layout viewport 布局檢視 移動裝置瀏覽器認為自己必須能夠讓所有 都顯示 即便那些不是為移動瀏覽器設計的 所以設計了乙個大於螢幕尺寸的viewport 用來相容那些不是為移...