详解vue2.0 不同屏幕适配及px与rem转换问题
因为项目需要,vue开发项目,必须将已写的以px为单位的部分,转换为rem。要是全部转换,这大量的计算量,哪怕是sublime Text 的cssrem插件,也是一个庞大的工作量。所以,直接使用插件没商量。 第一步:因为rem是根据更元素来计算大小,所以,捕捉到当前屏幕的大小并赋值给html,这是其一 第二步:使用px2rem插件,来捕捉当前项目的所有px,直接计算相对应数值。 这样,以后写界面,就可以直接用px来构建界面,不用自己去计算啦! 1、安装插件(我是安装了淘宝镜像,所以是cnpm,若是没装淘宝镜像,就npm) 2、配置px2rem build目录下vue-loader.conf.js中,做如下修改: /因为我是以750px(iphone6)宽度为基准,所以remUnit为37.5/
} 3、在static目录中,建js文件夹,放flex.js: if (metaEl) {
//console.warn('将根据已有的meta标签来设置缩放比例'); var match = metaEl.getAttribute('content').match(/initial-scale=([d.]+)/); if (match) { scale = parseFloat(match[1]); dpr = parseInt(1 / scale); } } else if (flexibleEl) { var content = flexibleEl.getAttribute('content'); if (content) { var initialDpr = content.match(/initial-dpr=([d.]+)/); var maximumDpr = content.match(/maximum-dpr=([d.]+)/); if (initialDpr) { dpr = parseFloat(initialDpr[1]); scale = parseFloat((1 / dpr).toFixed(2)); } if (maximumDpr) { dpr = parseFloat(maximumDpr[1]); scale = parseFloat((1 / dpr).toFixed(2)); } } } if (!dpr && !scale) { docEl.setAttribute('data-dpr',dpr); function refreshRem(){ win.addEventListener('resize',function() { if (doc.readyState === 'complete') { refreshRem(); flexible.dpr = win.dpr = dpr; })(window,window['lib'] || (window['lib'] = {})); 4、在index.html中,加入flex.js 5、重启项目 大功告成!! 现在你就可以在浏览器中,看到你的px换算成了rem啦! 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |