rem 和 em 到底该怎么用才不会乱? 欧阳恩希 提问于 2026-03-05 12:04:19 阅读 8 移动 我最近在做移动端页面,想用 rem 做响应式布局,但发现字体和间距老是对不齐。 我在根元素设了 font-size: 16px,然后组件里用 em 写 padding,结果不同父级下大小完全不一样,是不是 em 不能随便用? 试过统一用 rem,但有些局部缩放又显得太死板。有没有推荐的使用规范?比如什么场景用 rem,什么用 em? 我来解答 赞 1 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 UX乐萱 Lv1 哎这个我太有感触了,之前也被 rem 和 em 折磨得够呛。可以试试这样来区分: 1. 全局缩放用 rem:在 html 标签设 font-size,比如 html { font-size: 16px },然后其他尺寸都用 rem。这样整个页面会跟着根字号等比缩放,做响应式很方便。 2. 局部相对尺寸用 em:比如按钮内部的图标和文字间距,或者某个组件内部的 padding。记住 em 是相对于当前元素的 font-size,所以最好给父元素明确设置 font-size,不然会继承到不确定的值。比如: .card { font-size: 1rem; /* 明确设置 */ padding: 1em; /* 这时 1em=16px */ } .card-title { font-size: 1.2em; /* 1.2×16px=19.2px */ margin-bottom: 0.5em; /* 0.5×19.2px=9.6px */ } 3. 简单经验法则: - 涉及整体布局的(宽度、边距)用 rem - 组件内部细节(padding、行高)用 em - 字体大小建议都用 rem 保持统一 我之前踩的坑就是在一个没设 font-size 的 div 里用 em,结果发现 padding 忽大忽小,最后发现是继承了浏览器默认字号...现在都会习惯性先写 font-size 再玩 em。 回复 点赞 1 2026-03-05 13:07 加载更多 相关推荐 1 回答 11 浏览 VSCode <em>Remem>ote连接后React组件不热更新怎么办? 我在用 VSCode <em>Remem>ote-SSH 连接到远程服务器开发 React 项目,本地修改代码后页面完全不热更新,手动刷新也不生效,但终端里 Webpack 显示编译成功了。这是怎么回事? 我试过重... 设计师明硕 工具 2026-03-02 20:57:25 2 回答 14 浏览 <em>remem>和vw到底该用哪个做移动端适配? 最近在做一个移动端项目,UI给的设计稿是375px宽。我之前用<em>remem>配合js动态设置html的font-size,但听说现在主流都用vw了?试了下直接写width: 50vw确实方便,但有些老机型好像... IT人士轩 优化 2026-02-25 19:05:20 1 回答 76 浏览 <em>remem>适配时页面元素在不同手机上缩放比例不一致怎么办? 我用<em>remem>方案开发移动端时,设置了根字体大小根据屏幕宽度计算,但iPhone12和小米11上按钮大小明显不一样,html{font-size:50px}明明是动态计算的啊... 代码是这样写的:fun... 开发者阳阳 移动 2026-02-16 01:20:30 2 回答 163 浏览 <em>Remem>ax中使用Page组件时小程序正常但Web端显示空白页面怎么办? 我在用<em>Remem>ax开发多端应用时遇到奇怪问题,同样的Page组件在小程序端能正常渲染内容,但Web端只显示空白页面。检查过网络请求都没问题,控制台也没有报错。 尝试把页面代码简化到只剩最基础的结构还是不... 设计师卜楷 移动 2026-02-06 21:49:29 2 回答 64 浏览 <em>remem>方案中根字体大小动态计算后页面元素错位怎么办? 我按照教程用JS动态计算<em>remem>,但手机旋转屏幕后文字和图片比例不对,有时候文字太大或太小。 代码检查了好几遍没问题,是不是哪里漏了?比如这个计算函数: function set<em>Remem>() { cons... 欣辰(打工版) 移动 2026-01-27 10:28:27 1 回答 24 浏览 <em>Remem>atch中如何正确处理异步action的loading状态? 我在用<em>Remem>atch写一个数据请求的功能,想在请求开始和结束时更新loading状态,但发现状态没反应。我试过在effect里直接dispatch更新loading,但组件没重新渲染。 我的model... Top丶珮青 框架 2026-02-28 08:36:22 2 回答 37 浏览 为什么用 <em>remem>oveChild 删除节点会报错? 我明明查到了要删除的元素,但调用 <em>remem>oveChild 时却提示“无法在 null 上调用 <em>remem>oveChild”,这到底怎么回事? 我的 HTML 结构是这样的: <div id="con... 司空冬冬 前端 2026-02-27 22:28:20 2 回答 24 浏览 <em>remem>适配后为什么不同手机字体大小不一致? 我在用<em>remem>方案开发移动端时遇到个怪问题,设置了html根字体大小后,iPhoneX和华为nova9上的文字显示明显不一样大。明明都按设计图的750基准做了计算: const designWidth ... Newb.玉宁 移动 2026-02-15 20:28:28 2 回答 677 浏览 为什么<em>Remem>ix SSR生成的HTML里CSS变量在客户端显示不一致? 我在用<em>Remem>ix开发SSR应用时发现了个怪事,服务端渲染的HTML里有这样定义的CSS变量: :root { --primary-color: #3498db; } 但页面加载到客户端后,通过Java... 东方爱菊 框架 2026-02-14 18:28:28 2 回答 39 浏览 <em>Remem>atch中dispatch更新后组件没渲染,如何解决? 在用<em>Remem>atch写一个登录功能时遇到问题,dispatch更新user状态后组件没重新渲染。我用createAction返回了Promise,但控制台没报错,状态也没变。 尝试过这样写action:... UI梓希 框架 2026-02-12 17:42:30
1. 全局缩放用 rem:在 html 标签设 font-size,比如
html { font-size: 16px },然后其他尺寸都用 rem。这样整个页面会跟着根字号等比缩放,做响应式很方便。2. 局部相对尺寸用 em:比如按钮内部的图标和文字间距,或者某个组件内部的 padding。记住 em 是相对于当前元素的 font-size,所以最好给父元素明确设置 font-size,不然会继承到不确定的值。比如:
3. 简单经验法则:
- 涉及整体布局的(宽度、边距)用 rem
- 组件内部细节(padding、行高)用 em
- 字体大小建议都用 rem 保持统一
我之前踩的坑就是在一个没设 font-size 的 div 里用 em,结果发现 padding 忽大忽小,最后发现是继承了浏览器默认字号...现在都会习惯性先写 font-size 再玩 em。