一行css代码轻松实现前端响应式布局(vw+rem)

你们知道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-...

相关文章
相关标签/搜索