美文网首页
Vue移动端适配

Vue移动端适配

作者: 扶得一人醉如苏沐晨 | 来源:发表于2024-01-09 12:11 被阅读0次

实现方式

postcss-pxtorem:将px转换为rem
amfe-flexible:为html、body添加font-size,窗口调整时候重新设置font-size
autoprefixer 为css添加兼容性前缀

一、安装

npm install postcss-pxtorem --save-dev
npm install amfe-flexible --save
npm i autoprefixer

安装报错解决--版本兼容性问题--指定安装版本

npm install postcss-pxtorem@5.1.1 --save-dev
npm install amfe-flexible@2.2.1 --save

二、使用

2.1. main.js 引入amfe-flexible

// 导入js文件 根据窗口调整html-font-size大小
import "amfe-flexible";

2.2. 根目录创建postcss.config.js配置文件

注意:如果是 Vue3 + Vite 需要把.js改为.cjs

安装autoprefixer, 否则编译会报错

module.exports = {
  plugins: {
    // 为css添加兼容性前缀
    autoprefixer: {
      overrideBrowserslist: [
        "Android 4.1",
        "iOS 7.1",
        "Chrome > 31",
        "ff > 31",
        "ie >= 8",
        "last 10 versions", // 所有主流浏览器最近10版本用
      ],
      grid: true,
    },
    "postcss-pxtorem": {
      // 设计稿宽度的1/10  如375px-->37.5
      rootValue: 37.5,
      // 需要做转化处理的属性,如hight、width、margin.. *代表全部
      propList: ["*"],
      // 精度
      unitPrecision: 5,
    },
  },
};

三、Vue2.7版本以上,,postcss-pxtorem这个插件不可以将行内style样式的px转成rem

3.1. 如何解决???

手动转

3.2. 封装一个工具类

/**
 * 解决postcss不能将行内样式转为rem的问题
 * @params { Number | String } px 需要转换的像素值(Number) 也可以是百分数(String)
 * @return 如果是百分数不做处理 如果是像素值 手动转rem
 * 37.5 就是postcss.config.cjs配置文件的rootValue
 *  */
export function px2rem(px) {
  if (/%/gi.test(px)) return px;
  else return parseFloat(px) / 37.5 + "rem";
}

3.3. 挂载到全局--我用的是Vue3

import { px2rem } from "@/utils/index";
import App from "./App.vue";
const app = createApp(App);
app.provide("px2rem", px2rem);

3.4. 使用

<script setup>
import { inject } from "vue";
const px2rem = inject("px2rem");
</script>
<nav class="m-nav" :style="{ top: px2rem(top) }"></nav>

相关文章

  • 如何在Vue项目中使用vw实现移动端适配

    Vue项目中使用vw实现移动端适配 我们在vue移动端项目中的适配一般都采用rem,但是rem也不是能兼容所有的终...

  • 移动端如何适配?

    1、使用Flexible实现手淘H5页面的终端适配2、再聊移动端页面的适配3、如何在Vue项目中使用vw实现移动端...

  • vue移动端适配

    网址:https://segmentfault.com/a/11900000160398481.复制粘贴里面的JS...

  • Vue移动端适配

    一、配置flexible1、安装lib-flexible 2、全局引用文件(在mian.js中引入) 3、在项目根...

  • vue移动端适配

    首先安装插件 在main.js中进行引入 然后安装px转换为rem的插件 找到build文件夹下的utils.js...

  • vue 移动端适配

    vue适配:以750设计稿为基准,在不同屏幕尺寸下如何适配 Safari中设置了禁止用户缩放无效的问题: iOS ...

  • vue移动端适配

    在根目录的utils文件夹中新建rem.js,如果没有utils则自己新建,一般utils文件夹都是存放公用方法的...

  • vue 移动端适配

    这里我写一下我自己用的vue 移动端适配 ,可能跟别人的不一样。但是效果是一样的。我是安装 amfe-flexib...

  • vue 移动端适配

    一、方法一:rem 布局 在主入口:index.html, 标签内添加如下JS 代码:(实现在标准 375px宽...

  • vue 移动端适配

    1.安装配置PostCSS插件 2.在根目录.postcssrc.js文件中配置一下文件没有就新建一个 在inde...

网友评论

      本文标题:Vue移动端适配

      本文链接:https://www.haomeiwen.com/subject/pbtandtx.html