如何在vue中使用vw移动端适配
转载修改自大漠的 vw适配方案。vue 项目中使用vw 做移动端适配
1 | npm i postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano -S |
接下来对 .postcssrc.js 做出配置:
1 | // https://github.com/michael-ciniawsky/postcss-load-config |
在不想要把px转换为vw的时候,首先在对应的元素(html)中添加配置中指定的类名.ignore或.hairlines(.hairlines一般用于设置border-width:0.5px的元素中)
在哪些地方可以使用vw来适配我们的页面。根据相关的测试:
- 容器适配,可以使用
vw - 文本的适配,可以使用
vw - 大于
1px的边框、圆角、阴影都可以使用vw - 内距和外距,可以使用`vw
如果我们想要做一个188:246(188是容器宽度,246是容器高度)这样的比例容器,只需要这样使用:
1 | [w-188-246] { |
有一点需要特别注意:aspect-ratio属性不能和其他属性写在一起,否则编译出来的属性只会留下aspect-ratio的值
border-image 方式 处理底框1px:
1 | @svg 1px-border { |
background-iamge方式来处理1px:
1 | @svg square { |
CDN
viewport-units-buggyfill主要有两个JavaScript文件:viewport-units-buggyfill.js和viewport-units-buggyfill.hacks.js。你只需要在你的HTML文件中引入这两个文件。比如在Vue项目中的index.html引入它们
1 | <script src="//g.alicdn.com/fdilab/lib3rd/viewport-units-buggyfill/0.6.2/??viewport-units-buggyfill.hacks.min.js,viewport-units-buggyfill.min.js"></script> |
第二步,在HTML文件中调用viewport-units-buggyfill,比如:
1 | <script> |
只要使用到了viewport的单位(vw、vh、vmin或vmax )地方,需要在样式中添加content
但是content也会引起一定的副作用。比如img和伪元素::before(:before)或::after(:after)。在img中content会引起部分浏览器下,图片不会显示。这个时候需要全局添加:
1 | img { |