nuxt3适配移动端

方案1

postcss-px-to-viewport-8-plugin

npm install postcss-px-to-viewport-8-plugin -D

在这里插入图片描述

export default defineNuxtConfig({
	....
	postcss: {
    plugins: {
      "postcss-px-to-viewport-8-plugin": {
      	// 配置参数使用与 postcss-px-to-viewport 一致
        viewportWidth: 750,
        exclude: /node_modules/
      },
    },
  },
})

方案2

npm安装

npm i autoprefixer postcss postcss-pxtorem

在这里插入图片描述

nuxt.config.ts配置

export default defineNuxtConfig({
	...
    postcss: {
        plugins: {
            // 这个工具可以实现自动添加CSS3前缀
            "autoprefixer": {
                overrideBrowserslist: ["last 5 version", ">1%", "ie >=8"]
            },
            'postcss-pxtorem': {
                rootValue: 37.5, // 指定转换倍率,我现在设置这个表示1rem=37.5px;
                // 如果设计稿的尺寸不是 375,而是 750 或其他大小
                //rootValue({ file }) {
		        //	return file.indexOf('vant') !== -1 ? 37.5 : 75;
		      	//},
                propList: ['*'], // 属性列表,表示你要把哪些css属性的px转换成rem,这个*表示所有
                mediaQuery: true, // 是否允许使用媒体查询,false媒体查询的代码可用,true不可用
                exclude: 'ignore',
                replace: true, // 替换包含rem的规则,而不是添加回退
                minPixelValue: 1, // 需要转换的最小值,一般1px像素不转换,以上才转换
                unitPrecision: 6, // 转换成rem单位的小数点后的保留位数
                selectorBalckList: ["van", 'el'], // 匹配不被转换为rem的选择器
            },
        },
    },
})

/plugins/rem.ts

export default defineNuxtPlugin(() => {
    if (process.client) {
        // 屏幕适应
        (function (win, doc) {
            if (!win.addEventListener) return
            function setFont() {
                let screenWidth = document.querySelector('html')!.offsetWidth
                const baseSize = 37.5 // 如果设计稿的尺寸不是 375,而是 750 或其他大小
                const pageWidth = 750
                let fontSize = (baseSize * screenWidth) / pageWidth
                document.querySelector('html')!.style.fontSize = `${fontSize}px`
            }
            setFont()
            setTimeout(() => {
                setFont()
            }, 300)
            doc.addEventListener('DOMContentLoaded', setFont, false)
            win.addEventListener('resize', setFont, false)
            win.addEventListener('load', setFont, false)
        })(window, document)
    }
})

参考

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
nuxt3是一个基于Vue.js的服务器端渲染框架,它可以帮助我们快速构建适配移动端和Web端的应用程序。下面是一些关于nuxt3适配移动端和Web端的方法和步骤: 1. 安装Nuxt.js:首先,你需要安装Nuxt.js。你可以使用npm或者yarn来安装Nuxt.js。在命令行中运行以下命令来安装Nuxt.js: ```shell npm install create-nuxt-app -g ``` 2. 创建一个新的Nuxt项目:使用以下命令创建一个新的Nuxt项目: ```shell npx create-nuxt-app my-app ``` 这将会创建一个名为my-app的新的Nuxt项目。 3. 配置Nuxt.js:在创建项目的过程中,你将会被要求回答一些问题来配置你的Nuxt.js项目。你可以选择适配移动端和Web端的选项,例如是否使用Element Plus来适配移动端和Web端。 4. 安装Element Plus:如果你选择了使用Element Plus来适配移动端和Web端,你需要在项目中安装Element Plus。在命令行中运行以下命令来安装Element Plus: ```shell npm install element-plus ``` 5. 配置Element Plus:在Nuxt.js的配置文件(nuxt.config.js)中,你需要引入Element Plus并配置它。你可以在配置文件中添加以下代码: ```javascript export default { // ... buildModules: [ // ... 'element-plus/nuxt' ], // ... } ``` 6. 创建适配移动端和Web端的组件:在你的Nuxt项目中,你可以创建适配移动端和Web端的组件。你可以使用Vue.js的响应式布局来实现适配移动端和Web端的效果。 7. 运行项目:在命令行中运行以下命令来启动你的Nuxt项目: ```shell npm run dev ``` 这将会启动一个本地开发服务器,并在浏览器中打开你的应用程序。 这是一个简单的介绍,希望对你有帮助。如果你需要更详细的信息,请参考Nuxt.js的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amodoro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值