当前位置:首页 > React

react项目如何使用rem

2026-01-24 22:29:08React

使用 rem 的配置方法

在 React 项目中配置 rem 单位适配移动端,可以通过以下方式实现:

安装 postcss-pxtorem 插件

npm install postcss-pxtorem --save-dev

配置 craco 覆盖 create-react-app 默认配置(如使用 CRA)

npm install @craco/craco --save

创建 craco.config.js 文件

module.exports = {
  style: {
    postcss: {
      plugins: [
        require('postcss-pxtorem')({
          rootValue: 16,
          propList: ['*']
        })
      ]
    }
  }
}

动态计算 rem 基准值

在 public/index.html 的 head 中添加脚本

<script>
  document.documentElement.style.fontSize = 
    Math.min(window.innerWidth, 750) / 750 * 100 + 'px'
</script>

或在 src/index.js 中添加 resize 事件监听

function setRem() {
  const docEl = document.documentElement
  const width = Math.min(docEl.clientWidth, 750)
  docEl.style.fontSize = width / 7.5 + 'px'
}
window.addEventListener('resize', setRem)
setRem()

CSS 中使用 rem 单位

设置基础样式

body {
  font-size: 16px; /* 1rem = 16px */
}

.container {
  width: 10rem; /* 160px */
  padding: 0.5rem; /* 8px */
}

设计稿尺寸转换

假设设计稿宽度为 750px,开发时可直接按设计稿尺寸书写

react项目如何使用rem

// postcss-pxtorem 配置
{
  rootValue: 75,
  unitPrecision: 5,
  propList: ['*'],
  selectorBlackList: [],
  replace: true,
  mediaQuery: false,
  minPixelValue: 0
}

注意事项

使用 rem 布局时需确保所有尺寸单位统一为 rem
媒体查询中的尺寸也需要转换为 rem 单位
某些第三方组件可能需要单独处理样式覆盖
SVG 等矢量图形建议仍使用 px 单位保持清晰度

分享给朋友:

相关文章

vue ui实现创建vue项目

vue ui实现创建vue项目

使用 Vue UI 创建 Vue 项目的步骤 Vue CLI 提供了一个图形化界面(Vue UI)来创建和管理 Vue 项目。以下是详细的操作步骤: 安装 Vue CLI 确保已安装 Node.js…

vue实现项目依赖

vue实现项目依赖

安装 Vue.js 项目依赖 使用 Vue CLI 或 Vite 创建项目后,通过 package.json 文件管理依赖。运行以下命令安装所有依赖: npm install 添加新依赖 通过 np…

react如何建项目

react如何建项目

创建React项目的几种方法 使用官方工具Create React App(CRA) npx create-react-app my-app 这条命令会创建一个名为my-app的新React项目,包含…

vue 实现的项目

vue 实现的项目

Vue 项目实现的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目基础结构。Vue CLI 提供标准化模板,适合快速搭建;Vite 则更轻量,适合现代浏览器环境。安装依赖时需明…

react如何使用函数

react如何使用函数

使用函数组件的基本语法 在React中,函数组件是通过JavaScript函数定义的组件。函数接收props作为参数,并返回React元素。 function Welcome(props) {…

vue项目登录实现

vue项目登录实现

实现登录功能的基本流程 在Vue项目中实现登录功能通常涉及前端页面构建、表单验证、API调用、状态管理及路由控制等环节。以下是具体实现方法: 创建登录页面组件 使用Vue单文件组件构建登录界面,包含…