前端css中rem的作用

news/2025/11/15 20:03:26/文章来源:https://www.cnblogs.com/chen33/p/19226150

核心概念:rem 是什么?

  • rem 的全称是 root em。

  • em 是相对于其父元素的字体大小。

  • rem 是相对于根元素(<html>)的字体大小。、

  默认情况下,几乎所有浏览器的根元素字体大小都是 16px。所以,在未做任何修改时:

  1rem = 16px
  2rem = 32px
  0.5rem = 8px

rem 的主要用途

使用 rem 可以干很多让网页开发更灵活、更易维护的事情,主要有以下几个方面:

1. 实现响应式布局和可伸缩的界面
这是 rem 最强大、最常见的用途。通过改变根元素的 font-size,你就可以按比例地调整整个页面中使用 rem 为单位的所有元素的大小。

示例:使用媒体查询

/* 默认根字体大小(针对大屏幕) */
html {font-size: 16px;
}/* 中等屏幕 */
@media (max-width: 1200px) {html {font-size: 14px; /* 所有 rem 单位按比例缩小 */}
}/* 小屏幕(平板) */
@media (max-width: 768px) {html {font-size: 12px; /* 所有 rem 单位进一步缩小 */}
}/* 超小屏幕(手机) */
@media (max-width: 480px) {html {font-size: 10px; }
}/* 页面中的元素使用 rem */
.header {padding: 1rem; /* 在不同屏幕下会自动变为 16px, 14px, 12px, 10px */font-size: 1.5rem; /* 自动变为 24px, 21px, 18px, 15px */
}
.card {width: 20rem; /* 宽度也会随着根字体大小变化 */margin-bottom: 1rem;
}

通过这种方式,你只需要在媒体查询中修改一个值(html 的 font-size),整个页面的布局、间距、字体大小都会自动等比缩放,极大地简化了响应式设计的开发。

 

2. 保证可访问性:尊重用户的浏览器设置

有些用户会因为视力问题,在浏览器设置中调整默认的字体大小(例如,设置为 20px 或 24px)。

  • 如果你使用 px 这样的绝对单位,你的设置会覆盖用户的浏览器偏好,可能导致文字对他们来说仍然太小,损害可访问性。

  • 如果你使用 rem,因为它是相对于根字体大小的,而根字体大小会尊重用户的设置。如果用户将默认字体大小设为 20px,那么 1rem 就等于 20px,你整个页面的布局都会基于这个新的基准值进行放大,用户体验更好。

 

3. 统一和维护设计尺度

在现代前端开发中,经常会将根字体大小设置为一个更方便计算的值,然后所有尺寸都基于 rem

一种流行的技巧:将 html 的 font-size 设置为 62.5%

html {font-size: 62.5%; /* 这相当于 16px * 0.625 = 10px */
}

设置之后,计算就变得非常简单:

  • 1rem = 10px

  • 1.6rem = 16px

  • 2.4rem = 24px

你在写 CSS 的时候,脑子里就不用再做 16px 是 1rem 这种换算,直接想要多少 px,就除以 10 然后加上 rem 即可。这既保持了相对单位的灵活性,又拥有了绝对单位的直观性。

 

 

总结:使用 rem 可以干什么?

  1. 构建响应式布局:通过媒体查询改变根字体大小,一键控制整个页面的缩放比例。

  2. 提升可访问性:确保你的网站尊重用户在浏览器中设置的字体大小偏好。

  3. 统一设计系统:以一种易于维护和计算的方式,管理页面的间距、尺寸、字体大小等所有尺度。

最佳实践建议:

  • 字体大小(font-size):优先使用 rem,兼顾响应式和可访问性。

  • 布局和间距(paddingmarginwidthheight 等):同样优先使用 rem,以保持整体布局的协调缩放。

  • 与视口相关的布局:可以结合使用 vw(视口宽度单位)来设置根字体大小,实现更灵活的流体布局。

  • 极小的样式(如边框):对于 1px 边框,继续使用 px 通常更合适,因为你不希望它们随着布局缩放。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/966476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三十天

今天的学习重心放在了Java Web开发的核心实践上,围绕石家庄铁道大学选课管理系统的功能迭代展开,收获比预期更扎实。 上午先梳理了项目的分层架构逻辑,重点巩固了Controller、Service、Dao三层的职责划分——Contro…

WinDbg 随笔 001 —— HelloWorld + WinDbg

声明:个人笔记,概不负责 今天搞出个 C 程序,连 main 都进不了,WinDbg 也没办法断,无奈只能架起 宇宙第一的 Visual Studio 写个 HelloWorld 对比一下差异。 这 WinDbg 断 HelloWorld 我搞过好多回了,每次都随机抛…

数据结构2:单链表 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20251115 - Hash 总结

你说得对,但我几乎从来不把哈希叫做哈希,我习惯了叫 Hash。 比赛链接:https://vjudge.net/contest/766880。 卡 Hash 的出题人都是毒瘤出题人喵!一点也不良心。 A - Barn Echoes G 由于这个长度只有 \(80\),因此随…

BZOJ2372 music

思路 两个字符串等价,相当于两个串中排名相同的字符,出现的位置相同。 于是我们哈希,分别维护每种字符的出现位置序列。 现在瓶颈在于得到每种字符的排名。 发现字符集只有 \(25\),可以直接枚举,桶排即可。然后再…

P11664 [JOI 2025 Final] 缆车 / Mi Telefrico

思路 注意到,DAG 符合条件当且仅当节点 \(2 \sim n\) 的入度都不为零。 对于一个左端点 \(l\),合法的 \(r\) 具有单调性。设最小的使 \(l\) 合法的 \(r\) 为 \(R_l\),则区间 \([q_l,q_r]\) 当 \(R_{q_l} \le q_r\) …

WPF中RelayCommand的完成与使用详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

C++篇(14)二叉树进阶算法题 - 详解

C++篇(14)二叉树进阶算法题 - 详解2025-11-15 19:34 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !im…

Python 潮流周刊#127:Python 3.16 JIT 性能提升计划

本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 温馨提…

非线性序列密码结构

NFG,NCG,NCGC,CCG关于LFSR线性反馈移位寄存器和攻击方法B-M算法参考:序列密码概述部分:https://www.cnblogs.com/luminescence/p/18938331 下面内容主要围绕对LFSR进行非线性改造的四种经典方法展开,以克服LFSR序列…

2025/11/15

2025/11/15学习算法

LoongOS 上传文件

LoongOS 上传文件一般开发板预装的系统都自带有一个ssh服务器 如果默认没打开ssh服务 通过ifconfig查看ip地址 打开ssh服务systemctl start sshd 然后用MobaXterm连接ssh并登录 先在控制台选好地方 比如 cd \test 直接…

2025年目前品质好的羊毛地毯厂家推荐

文章摘要 2025年羊毛地毯行业持续向环保化、个性化方向发展,手工编织与天然材质成为市场主流趋势。本文基于行业数据与用户口碑,深度评测当前市场上品质优异的羊毛地毯生产厂家,为采购商和消费者提供权威参考。文末…

2025年市场上品质好的羊毛地毯制造企业

摘要 2025年,羊毛地毯行业持续增长,消费者对环保、设计和品质的需求日益提升。本文基于行业数据和用户评价,为您呈现市场上品质优秀的羊毛地毯制造企业排名,并提供详细分析供参考。如果您有采购或合作意向,可通过…

基础设施即服务(IaaS)全面解析:云计算的基石

本文详细介绍了基础设施即服务(IaaS)的概念、架构、工作原理、实施要点、优缺点及主要供应商。IaaS作为云计算三大服务模式之一,通过虚拟化技术为企业提供灵活、可扩展的计算资源。什么是基础设施即服务(IaaS)? 基础…

CentOS 7 通过 Packstack 安装 OpenStack Train 完整步骤

CentOS 7 通过 Packstack 安装 OpenStack Train 完整步骤该文章详细指导如何在 CentOS 7 系统上通过 Packstack 工具安装 OpenStack Train。首先介绍 OpenStack 的定义、核心特性(开源免费、资源统一管理等)与应用场…

【STM32工程开源】基于STM32的人体健康监测环境

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:【C# OOP 入门到精通】从基础概念到 MVC 实战(含 SOLID 原则与完整代码)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

tailwind自定义class问题小记

非常好的问题!您提到了两个关键点: 1. @layer components 是否合适? 是的,非常合适! pure-ipt 应该定义在 @layer components 中,因为:@layer base - 用于基础样式(如 *, body, html) @layer components - 用…

2025年主流开源AI智能体框架平台概览 - 实践

2025年主流开源AI智能体框架平台概览 - 实践2025-11-15 19:06 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…