vite3+vue3 postcss-pxtorem 实现css自适应设备(px转rem)

本文介绍了如何在Vite3+Vue3项目中利用postcss-pxtorem进行px转rem,实现CSS自适应。首先,通过yarn安装postcss-pxtorem,并在postcss.config.js中配置rootValue。接着,安装autoprefixer避免浏览器前缀问题。然后,引入amfe-flexible以适应不同终端。在main.js中引入并配置。在项目运行中可能会遇到autoprefixer关于browserslist的报错,需要在package.json中添加browserslist配置来解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近新开一个项目是做公司前台的大屏展示,但我不知道屏幕的尺寸,所以考虑使用自适应css,这样只需要知道设计稿宽度就能适配任意尺寸的屏幕,达到一个1:1还原的效果,前提是设计稿长宽比和屏幕长宽比相等。

1.安装postcss-pxtorem

yarn add postcss-pxtorem -D

安装命令使用的yarn ,习惯使用npm或其他包管理工具的自行替换

package.json同级目录创建postcss.config.js文件

export default {
    plugins: {
        autoprefixer: {
            overrideBrowserslist: [
                "Android 4.1",
                "iOS 7.1",
                "Chrome > 31",
                "ff > 31",
                "ie >= 8",
                "last 10 versions", // 所有主流浏览器最近10版本用
            ],
            grid: true,
        },
        'postcss-pxtorem': {
            rootValue: 124, // 设计稿宽度 / 10
            propList: ['*'],
            unitPrecision: 5
        }
    }
}

使用的时候就按照实际的项目改rootValue

比如我这张设计图宽度1240,那么我的rootValue就是 1240 / 10 = 124

### 配置 PostCSSpostcss-pxtorem 为了使 Vite 项目中的 CSS 能够自适应不同分辨率的显示器,在 `postcss.config.js` 文件中配置插件 `postcss-pxtorem` 是一种有效的方法。通过这种方式可以将固定的 px 单位化为相对单位 rem,从而提高页面在各种设备上的显示效果。 对于 PC 端页面来说,通常会设定一个基础字体大小作为根元素 (`html`) 的 font-size 属性值,这有助于计算其他 HTML 元素相对于这个基准的比例尺。下面是一个具体的例子来说明如何设置: ```javascript // project-root/postcss.config.js module.exports = { plugins: { 'postcss-pxtorem': { rootValue: 16, // 设计稿每 10 像素对应实际网页上 1rem propList: ['*'], // 对所有属性应用换 selectorBlackList: ['.ignore', '.hairlines'] // 排除不需要被处理的选择器前缀 } } }; ``` 此段代码定义了一个名为 `rootValue` 的参数用于指定设计图尺寸与最终渲染结果之间的比例关系;而 `propList` 参数则决定了哪些样式属性应该参与从像素到 rem 的自动替换过程[^1]。 另外需要注意的是,当使用 Vite 构建工具时,还需要确保已经安装好了必要的依赖包以便支持 PostCSS 及其扩展功能。可以通过执行如下命令完成这些软件包的下载并保存至开发环境下的 node_modules 中: ```bash yarn add vite @vitejs/plugin-vue postcss autoprefixer postcss-pxtorem --dev ``` 最后一步是在项目的入口文件 (通常是 main.css 或 index.html 内部链接引入的第一个外部样式表) 加入一行简单的 CSS 来初始化 html 标签的基础字体大小,例如: ```css /* styles/main.css */ html { font-size: 16px; } ``` 这样做能够保证整个文档流内的子节点都能继承这一默认值,并在此基础上按照预设逻辑调整自身的具体表现形式[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值