求教 关于vue web项目手机端viewport设置为什么无效

可以读一下ppk大神写的关于viewport的文章然后你就会有比较好的理解了。

有关于移动端的适配布局一直以來都是众说纷纭对应的解决方案也是有很多种。在《使用Flexible实现手淘H5页面的终端适配》提出了Flexible的布局方案随着viewport单位越来越受到众多浏览器的支持,因此在《再聊移动端页面的适配》一文中提出了vw来做移动端的适配问题到目前为止不管是哪一种方案,都还存在一定的缺陷言外之意,还没有哪一个方案是完美的

事实上真的不完美?其实不然最近为了新项目中能更完美的使用vw来做移动端的适配。探讨出┅种能解决不兼容viewport单位的方案今天整理一下,与大家一起分享如果方案中存在一定的缺陷,欢迎大家一起拍正

对于Flexible或者说vw的布局,其原理不在这篇文章进行阐述如果你想追踪其中的原委,强烈建议你阅读早前整理的文章《使用Flexible实现手淘H5页面的终端适配》和《再聊移動端页面的适配》

说句题外话,由于Flexible的出现也造成很多同学对rem的误解。正如当年大家对div的误解一样也因此,大家都觉得rem是万能的怹能直接解决移动端的适配问题。事实并不是如此至于为什么,我想大家应该去阅读flexible.js源码我相信你会明白其中的原委。

回到我们今天偠聊的主题怎么实现vw的兼容问题。为了解决这个兼容问题我将借助Vue官网提供的构建工程以及一些PostCSS插件来完成。在继续后面的内容之前需要准备一些东西:

对于这些起什么作用,先不阐述后续我们会聊到上述的一些东西。

对于NodeJs、NPM和Webpack相关介绍大家可以查阅其对应的官網。这里默认你的系统环境已经安装好Nodejs、NPM和Webpack我的系统目前使用的Node版本是v9.4.0;NPM的版本是v5.6.0。事实上这些都并不重要。

为了不花太多的时间去罙入的了解Webpack(Webpack对我而言太蛋疼了),所以我直接使用Vue-cli来构建自己的项目因为我一般使用Vue来做项目。如果你想深入的了解Webpack建议你阅读下面嘚文章:

接下来的内容,直接使用Vue官方提供的Vue-cli的构建工具来构建Vue项目首先需要安装Vue-cli:

全局先安装Vue-cli,假设你安装好了Vue-cli这样就可以使用它來构建项目:

根据命令提示做相应的操作:

以前的版本需要先执行npm i安装项目需要的依赖关系。现在新版本的可以免了

这时,可以看到的項目结构如下:

通过Vue-cli构建的项目在项目的根目录下有一个.postcssrc.js,默认情况下已经有了:

对应我们开头列的的PostCSS插件清单现在已经具备了:

简單的说一下这几个插件。

postcss-import相关配置可以点击这里目前使用的是默认配置。只在.postcssrc.js文件中引入了该插件

postcss-import主要功有是解决@import引入路径问题。使鼡这个插件可以让你很轻易的使用本地文件、node_modules或者web_modules的文件。这个插件配合postcss-url让你引入文件变得更轻松

postcss-url相关配置可以点击这里。该插件主偠用来处理文件比如图片文件、字体文件等引用路径的处理。

在Vue项目中vue-loader已具有类似的功能,只需要配置中将vue-loader配置进去

在.env.development文件中设置全局变量的时候发現并没有生效问题查了好久,终于在
找到问题所在当然他和遇到的问题不一样。好在知道问题所在只有申明前缀为VUE_APP_的配置才能生效。

一般我们做vue移动端项目使用的长喥单位是rem、em需要根据设计稿宽度进行计算,而这个插件可以配置相应属性直接按照原始设计稿长度进行构建不需要繁琐的单位换算。

咹装完成后在vue根目录下找到".postcssrc.js"文件添加下面的配置:

tips:selectorBlackList属性用作绕开计算指定类名的样式,若项目中有使用其他ui组件时需配置ui常用类名

我要回帖

 

随机推荐