小tips:使用rem+vw實現簡單的移動端適配
阿新 • • 發佈:2019-03-05
get 一個 url div 代碼 尺寸 lar dev ice
首先設置meta屬性,如下代碼:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
使用如下代碼就能實現移動端的適配:
html { font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); }
100vw相當於瀏覽器的window.innerWidth,是瀏覽器的內部寬度,註意,滾動條寬度也計算在內!那麽1vw就是表示1%的屏幕寬度。
其中的13.33333333vw是怎麽來的呢?就是你的設計稿是750px,那麽設計稿的1px就是0.133333333vw,那麽100px就是13.33333333vw。也即是html的font-size設置為100px相當於1rem(設計稿為750px)。那麽我們就可以很輕松的換算設計稿中的單位為rem了,比如一個元素寬度為150px,轉換為rem就是1.5rem。其他尺寸設計稿的計算方式依次類推。
參考網易新聞移動端的寫法:
/** * view-port list: 320x480 320x568 320x570 360x592 360x598 360x604 360x640 360x720 375x667 375x812 393x699 412x732 414x736 480x854 540x960 640x360 720x1184 720x1280 800x600 1024x768 1080x1812 1080x1920*/ html { font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } @media screen and (max-width: 320px) { html { font-size: 42.667px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 321px) and (max-width: 360px){ html { font-size: 48px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 361px) and (max-width: 375px) { html { font-size: 50px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 376px) and (max-width: 393px) { html { font-size: 52.4px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 394px) and (max-width: 412px) { html { font-size: 54.93px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 413px) and (max-width: 414px) { html { font-size: 55.2px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 415px) and (max-width: 480px) { html { font-size: 64px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 481px) and (max-width: 540px) { html { font-size: 72px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 541px) and (max-width: 640px) { html { font-size: 85.33px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 641px) and (max-width: 720px) { html { font-size: 96px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 721px) and (max-width: 768px) { html { font-size: 102.4px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } @media screen and (min-width: 769px) { html { font-size: 102.4px; font-size: -webkit-calc(13.33333333vw); font-size: calc(13.33333333vw); } } body { font-family: "PingFangSC-Regular", "Microsoft YaHei", Helvetica; color: #333333; background: #f5f7f9; } html a { color: #333333; }
這樣寫法也是為了兼容老版本手機不支持vw以及calc語法。
參考地址:
- 《最簡單的移動端適配方案(rem+vw)》
- 《CSS3 calc實現滾動條出現頁面不跳動》
- 《從淘寶和網易的font-size思考移動端怎樣使用rem?》
小tips:使用rem+vw實現簡單的移動端適配