你们知道rem能够用来作响应式布局,只是html元素上的font-size样式须要根据屏幕宽度来指定。css
以前有用@media媒体查询,根据各类屏幕宽度写html的样式,也用过相似lib-flexible这样的js库动态改变html样式,总以为挺麻烦的。html
今天忽然想到vw这个单位,发现用它来作响应式布局实在太方便了。vue
只需一行css:webpack
html { font-size: 26.66667vw !important; }
屏幕标准宽375px,所有宽度是100vw,即:git
100vw / 375px = 0.2666667 vw/pxgithub
也就是每像素0.2666667vw。为调试时便于换算,咱们设定1rem = 100px, 即 1rem = 26.66667vw。这个值也可根据本身须要调整数值。web
而后,咱们再样式中,就能够直接用rem了,作出来就是响应式布局。element-ui
固然若是你还想再方便点,也能够在css代码里直接用px作单位,而后使用postcss-pxtorem这个工具在webpack构建时将px转为rem单位。这样写代码时照着UI图的标注直接写像素值就好了。配置以下:工具
{ loader: 'postcss-loader', options: { plugins: [ require('postcss-pxtorem')({rootValue: 100, propList: ['*']}) ] } }
这个 rootValue: 100值,就是对应上面的换算关系。若是你要调整的话,这里要一并调整。布局
具体实现的完整代码请参考:https://github.com/hzsrc/vue-...