前端px转为rem的自适应解决方案

news/2025/2/27 10:50:28

1.前端项目安装:npm install postcss-pxtorem --save-dev

2.在项目根目录下新增postcss.config.js文件,文件内容如下:

module.exports = {

  plugins: {

    'postcss-pxtorem': {

      rootValue: 16, // 1rem = 16px

      propList: ['*'], // 转换所有属性

      selectorBlackList: ['.no-rem'], // 忽略特定类名

    },

  },

};

3.动态设置根字体大小

在 src/main.js 中动态设置根元素的字体大小:

function setRem() {

  const baseSize = 16; // 基准大小

  const scale = document.documentElement.clientWidth / 1920; // 设计稿宽度为 1920px

  document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'; // 限制最大缩放比例

}



setRem();

window.addEventListener('resize', setRem);

此种方案的样式需要写在css中,对于行内style中的样式不起作用


http://www.niftyadmin.cn/n/5869984.html

相关文章

服务器间迁移conda环境

注意:可使用迁移miniconda文件 or 迁移yaml文件两种方式,推荐前者,基本无bug! 一、迁移miniconda文件: 拷贝旧机器的miniconda文件文件到新机器: 内网拷贝:scp -r mazhf192.168.1.233:~/miniconda3 ~/ 外…

支持自动化数据回放

以下是10个支持请求录入与回放能力的免费测试开发平台,均来自GitHub: 1. **Sharingan** GitHub地址:[https://github.com/didi/sharingan](https://github.com/didi/sharingan) 特点:基于Go语言的流量录制回放工具&…

c#笔记-基础知识

目录 整数 浮点 decimal bool 引用 object string 值 枚举 关键字 enum 类型转换 隐式转换 ​编辑 显式转换 装箱,拆箱 常量 表达式 ​编辑 字符串的使用 比较字符串 字符格式化 ​编辑 截取字符串 字符串的分割 插入字符串 删除字符串 …

DevOps全流程

DevOps全流程 面试速记 DevOps 是一种融合开与运维的软件研发实践方法,规划从需求调研到开发,测试,部署等全流程,通过Jenkins 和Kubernetes 等自动化工具集成部署实现从代码编写到部署的无缝衔接,加速软件交付周期。我…

Redis分布式缓存面试题

为什么使用分布式缓存? 1. 提升性能 降低延迟:将数据缓存在离应用更近的地方,减少数据访问时间。减轻数据库压力:缓存频繁访问的数据,减少对后端数据库的请求,提升系统响应速度。 2. 扩展性 水平扩展&a…

计算机网络之传输层(传输层的功能)

一、数据分段与重组 传输层从会话层接收数据,并将其分割成较小的数据段,以适应网络层的最大传输单元(MTU)限制。在目的端,传输层负责将这些数据段重新组合成原始数据,确保数据的完整性和正确性。 二、端口…

设计模式-行为型-责任链模式

1. 责任链模式概述 责任链模式(Chain of Responsibility Pattern) 是一种行为型设计模式,它允许多个对象依次处理请求,形成一条处理链。每个对象都包含对下一个对象的引用,如果它无法处理请求,则将请求传递…

支持selenium的chrome driver更新到133.0.6943.141

最近chrome释放新版本:133.0.6943.141 如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…