H5 中移动端视口适配怎么使用 em 与 rem 的区别及混用场景

浅明酱_3086

浅明酱_3086

2026-09-21

585人浏览

原创

rem基于根元素font-size实现全局等比缩放,em依赖父元素字体大小用于局部文字关联适配;rem适合布局与整体控制,em适合padding、line-height等需随文字动态调整的细节,二者应按角色分工混用而非随意叠加。

h5 中移动端视口适配怎么使用 em 与 rem 的区别及混用场景

移动端 H5 视口适配中,emrem 都是相对单位,但作用基准完全不同——em 依赖父级字体大小,rem 只认根元素(html)的 font-size。混用不是随意叠加,而是按角色分工:rem 控制整体缩放节奏,em 负责局部与文字强关联的细节适配。

rem:全局等比缩放的核心工具

rem 的价值在于“一动全动”。只要动态设置 html { font-size: Xpx; },所有用 rem 定义的字体、间距、宽高、圆角都会同比例变化,天然契合响应式布局。

  • 设计稿以 375px 为基准时,常设 1rem = 16px,即 html { font-size: 16px; };屏幕宽度变为 750px 时,改为 32px,所有 1rem 元素自动放大 2 倍
  • JS 动态计算更可靠:document.documentElement.style.fontSize = (clientWidth / 375) * 16 + 'px';,建议在 DOM 加载早期执行,避免 FOUC
  • viewport 必须正确声明:<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">,否则 clientWidth 可能失真

em:局部跟随文字节奏的辅助单位

em 不参与全局缩放,它的意义是“绑定当前文字”。当父元素字号变化时,用 em 定义的 padding、line-height、图标尺寸会自动匹配,保持视觉协调。

html-ppt-to-pdf
html-ppt-to-pdf

将使用 `

` 约定的 HTML 幻灯片转换为高保真、矢量文本 PDF(使用 Playwright + Chromium 原生 PDF 功能)。

下载
  • 按钮内边距写成 padding: 0.75em 1.25em;,文字变大时留白自然撑开,不会出现文字顶边或拥挤
  • 图标尺寸用 em(如 width: 1.5em; height: 1.5em;),能始终与包裹它的文字等比,适合 iconfont 或 inline SVG
  • 慎用于多层嵌套容器——若父 div 字号是 14px,子 div 设 font-size: 0.8em;,再下一级又设 margin: 1.2em;,实际值需逐层计算,易出错

什么时候该混用?关键看是否需要“解耦”

混用不是为了炫技,而是解决单一单位无法兼顾的问题:全局缩放要稳,局部节奏要活。

  • 导航栏整体用 rem 定义高度和字体(随屏幕等比缩放),但每个菜单项的 padding 用 em,确保文字增大时点击区域仍舒适
  • 卡片容器宽高用 rem(保持网格结构稳定),卡片标题 line-heightmargin-bottom 用 em,让行距始终贴合当前字号
  • 表单控件如 input,heightfont-size 用 rem 统一缩放,但 padding-left 用 em,避免文字和边框间距在不同字号下失衡

哪些情况坚决不用 em 或 rem?

固定像素有其不可替代性,强行“响应式”反而破坏体验。

  • 细线边框(border: 1px solid #eee;)必须用 px,rem 在高清屏可能渲染成模糊的 2px 线
  • 图标字体(如 iconfont)的 font-size 推荐用 px 或 rem,但绝对不要用 em——它会因父级字号意外缩放,导致图标错位
  • 动画关键帧中的位移(transform: translateX(2px))用 px 更精准,rem 在频繁重排时可能引入微小抖动

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

html

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2023

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4303

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5430

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

4878

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

683

5

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

2023.10.23

3411

6

HTML与HTML5的区别
HTML与HTML5的区别

HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

2024.03.06

5568

6

html5从入门到精通汇总
html5从入门到精通汇总

想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

2025.12.30

734

19

html5新老标签汇总
html5新老标签汇总

HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

2025.12.30

614

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 202人学习