# CSS3中的rem怎么使用 ## 一、rem单位概述 rem(root em)是CSS3新增的相对长度单位,与em单位类似但有着关键区别。rem的全称是"root em",即相对于根元素(html元素)的字体大小进行计算,而非父级元素的字体大小。 ### 1.1 rem与px的区别 - px是绝对单位,1px表示1个物理像素 - rem是相对单位,1rem等于根元素的字体大小 ### 1.2 rem与em的区别 | 特性 | rem | em | |------------|--------------------------|-------------------------| | 计算基准 | 根元素(html)的字体大小 | 父元素的字体大小 | | 继承性 | 不受父元素影响 | 受多层父元素影响 | | 使用场景 | 全局缩放 | 局部相对调整 | ## 二、rem的基本用法 ### 2.1 设置根元素字体大小 ```css html { font-size: 16px; /* 默认值,通常需要重置 */ }
.container { width: 20rem; /* 20 × 根字体大小 */ padding: 1rem; font-size: 1.2rem; }
rem单位被所有现代浏览器支持,包括: - Chrome 4+ - Firefox 3.6+ - IE9+ - Safari 5+ - Opera 11.6+
html { font-size: 14px; } @media (min-width: 768px) { html { font-size: 16px; } }
更灵活的解决方案:
html { font-size: calc(14px + 2 * (100vw - 400px) / 400); }
html { font-size: 62.5%; /* 10px = 1rem (基于浏览器默认16px) */ } body { font-size: 1.6rem; /* 16px */ }
/* 边框等固定尺寸使用px */ .button { border: 1px solid #333; padding: 0.8rem 1.5rem; }
/* 避免出现0.5px这样的计算值 */ .item { width: 10.5rem; /* 可能渲染为11px */ }
// 动态调整根字体大小 document.documentElement.style.fontSize = window.innerWidth / 10 + 'px';
/* 基于750设计稿的适配 */ html { font-size: calc(100vw / 7.5); } .header { height: 0.88rem; /* 相当于88px */ }
// Sass函数实现px转rem @function rem($px) { @return ($px / 16) * 1rem; } .box { width: rem(320); }
/* 按钮组件示例 */ .btn { padding: 0.75rem 1.5rem; border-radius: 0.25rem; font-size: 1rem; }
/* 解决方案:显式声明body字体大小 */ body { font-size: 1rem; }
/* 重置第三方组件的px单位 */ .third-party-component { transform: scale(calc(1rem / 16px)); }
/* 兼容性写法示例 */ .box { width: 320px; width: 20rem; }
rem单位在现代Web开发中扮演着重要角色,特别是在响应式设计和移动端适配方面。通过合理使用rem,开发者可以:
掌握rem需要实践,建议在项目中逐步应用,结合具体需求选择最适合的实现方案。 “`
注:本文约1350字,涵盖了rem的核心概念、使用方法、实用技巧和最佳实践。如需调整内容或补充细节,可以进一步扩展具体章节的示例和说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。