当前位置:首页 > JavaScript

rem js实现

2026-01-31 16:49:31JavaScript

JavaScript 实现 REM 布局

REM(Root EM)是一种基于根元素字体大小的相对单位,常用于移动端适配。以下是实现 REM 布局的详细方法:

设置根元素字体大小

通过 JavaScript 动态计算并设置根元素(<html>)的 font-size,通常以屏幕宽度为基准:

rem js实现

function setRemUnit() {
  const docEl = document.documentElement;
  const width = docEl.clientWidth;
  const rem = width / 10; // 将屏幕宽度分为10份,1rem = 屏幕宽度的1/10
  docEl.style.fontSize = rem + 'px';
}

// 初始化执行
setRemUnit();
// 监听窗口变化
window.addEventListener('resize', setRemUnit);

CSS 中使用 REM 单位

在 CSS 中直接使用 REM 单位,所有尺寸将自动适配屏幕宽度:

rem js实现

.box {
  width: 2rem;  /* 实际宽度为屏幕宽度的2/10 */
  font-size: 0.3rem; /* 字体大小为屏幕宽度的0.3/10 */
}

结合媒体查询(可选)

为防止极端尺寸下布局异常,可添加媒体查询限制根字体大小的范围:

@media screen and (max-width: 320px) {
  html { font-size: 32px; }
}
@media screen and (min-width: 750px) {
  html { font-size: 75px; }
}

设计稿尺寸转换

若设计稿基于 750px 宽度,可通过工具(如 PostCSS 插件)将像素值自动转换为 REM。手动计算规则为: $$ rem = \frac{设计稿像素值}{基准值(如75)} $$ 例如设计稿中 150px 的元素对应 CSS 中 2rem(150÷75)。

注意事项

  • 避免在非尺寸属性(如颜色、定位)中使用 REM。
  • 安卓设备可能对小于 12px 的字体渲染异常,需单独处理。
  • 禁用用户缩放可增强一致性:<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

标签: remjs
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的H…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url,…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…