vw+pxtorem+媒体查询实现移动端适配

首先来说一下思路:

首先项目中使用的单位都是px,手动将px转换为rem肯定不现实,这时候就用pxtorem插件将项目中使用的px转换为rem,转换为rem后,由于rem是根据font-size变化而变化的,要想实现移动端适配,就需要在屏幕大小是移动端大小时根据屏幕大小动态修改font-size从而影响rem修改px大小,这里根据屏幕大小动态修改font-size我使用的是vw,上面配置好后就实现了移动端的适配,接下来再通过媒体查询修改布局来实现响应式

引用一段对 vw、vh、vm 的描述

  • vw是视口宽度的单位,视口宽度是100vw
  • vh是视口高度的单位,视口高度是100vh
  • vm取vw和vh较小的一个除以100作为单位

直接将根元素的 font-size 设置为 10vw,即可实现相同效果

详细步骤:

1、下载pxtorem

npm install pxtorem

2、在nuxt.config.js中引入

//webpack配置
  build: {
   
   
    
### 使用 `postcss-pxtorem` 插件实现 CSS 单位转换 #### 配置方法 为了使项目支持从像素单位到相对单位的自动转换,可以在构建工具配置文件中集成 `postcss-pxtorem` 插件。对于基于 Vite 构建的应用程序,在 `vite.config.ts` 文件里添加如下所示的相关配置: ```typescript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import postcssPxToRem from 'postcss-pxtorem'; export default defineConfig({ plugins: [ vue(), ], css: { postcss: { plugins: [ postcssPxToRem({ rootValue: 16, // 设定根节点font-size,默认为16px propList: ['*'], // 表明哪些属性会被处理;'*'表示全部 selectorBlackList: [], // (字符串或正则表达式列表)忽略的选择器 minPixelValue: 0, // 设置要替换的最小像素值 mediaQuery: false, // 是否允许媒体查询中的px也转换成rem exclude: /node_modules/i // 排除某些目录下的文件不进行转换 }), ] } }, }); ``` 此段代码定义了一个 PostCSS 处理流程,其中包含了用于将固定尺寸单位(px)转变为弹性尺寸单位(rem)的功能[^3]。 #### 技巧与注意事项 当应用上述配置之后,开发者需要注意几个方面以确保最佳效果: - **行内样式的局限性**:由于 HTML 属性内的样式无法通过这种方式被解析并修改,因此建议尽可能采用外部样式表来管理视觉表现逻辑。 - **响应式设计考量**:尽管该插件可以很好地帮助创建灵活的设计方案,但在实际开发过程中仍需结合其他技术手段如视口单位(`vw`, `vh`)、断点媒体查询等共同作用于复杂场景下多终端的一致体验优化[^2]。 - **图片资源适配**:针对高清屏显示需求,除了调整文字和其他界面元素外,还需特别关注图像素材的质量控制——即准备不同分辨率版本(比如一倍图、两倍图乃至三倍图),并通过适当的方式加载对应质量级别的图形资产。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值