vw实现移动端自适应页面
一、設(shè)備支持情況
測試網(wǎng)站:https://caniuse.com/#search=vw
css3test:https://airen.github.io/css3test/,https://github.com/airen/css3test
1、PC端
2、mobile端
二、vw的不足
1、vw和px混用時會溢出
當(dāng)容器使用vw單位,margin采用px單位時,很容易造成整體寬度超過100vw,從而影響布局效果。對于類似這樣的現(xiàn)象,我們可以采用相關(guān)的技術(shù)進(jìn)行規(guī)避。比如將margin換成padding,并且配合box-sizing。只不過這不是最佳方案,隨著將來瀏覽器或者應(yīng)用自身的Webview對calc()函數(shù)的支持之后,碰到vw和px混合使用的時候,可以結(jié)合calc()函數(shù)一起使用,這樣就可以完美的解決。
2、有些機(jī)型不支持
可以采用csspolyfill進(jìn)行降級處理,推薦Viewport Units Buggyfill
三、vw需知
vw是基于Viewport視窗的長度單位,視窗(Viewport)指的就是瀏覽器可視化的區(qū)域,而這個可視區(qū)域是window.innerWidth/window.innerHeight的大小。
在CSS Values and Units Module Level 3中和Viewport相關(guān)的單位有四個,分別為vw、vh、vmin和vmax。
1、vw
是Viewport's width的簡寫,1vw等于window.innerWidth的1%;
2、vh
是Viewport's height的簡寫,1vh等于window.innerHeihgt的1%;
3、vmin
vmin的值是當(dāng)前vw和vh中較小的值;
4、vmax
vmax的值是當(dāng)前vw和vh中較大的值;
5、計算
100vw = 750px,即1vw = 7.5px。
四、vw的使用
1、把px轉(zhuǎn)化為vw,vh
在代碼中寫px,借助插件postcss-px-to-viewport轉(zhuǎn)化為vw。
安裝后,進(jìn)行參數(shù)配置
2、容器的長寬比縮放
推薦插件postcss-aspect-ratio-mini。安裝后,直接使用如下,不用配置。
會看到編譯結(jié)果
.aspect-box {position: relative; }.aspect-box:before {padding-top: 56.25%; }3、1px的處理方案
安裝postcss-write-svg插件。
方案A、border-image
會看到編譯結(jié)果
.example { border: 1px solid transparent; border-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='2px'%3E%3Crect fill='%2300b1ff' width='100%25' height='50%25'/%3E%3C/svg%3E") 2 2 stretch; }方案B、background-image
@svg square { @rect { fill: var(--color, black); width: 100%; height: 100%; } } #example { background: white svg(square param(--color #00b1ff)); }會看到編譯結(jié)果
#example { background: white url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect fill='%2300b1ff' width='100%25' height='100%25'/%3E%3C/svg%3E"); }?
轉(zhuǎn)載于:https://www.cnblogs.com/camille666/p/vw_autoadapt.html
總結(jié)
以上是生活随笔為你收集整理的vw实现移动端自适应页面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排序_简单排序_选择排序
- 下一篇: 团队绩效博客