css相对单位 rem 和 em 的最佳实践

简介: css相对单位 rem 和 em 的最佳实践

rem 相对于根元素进行计算,若根元素的 font-size为16px,则其他元素的2rem的大小为 2*16 = 32px 。(根元素是指没有父节点的 dom 节点,在html中是html标签)

em相对于最近的父元素进行计算,若父元素的 font-size为16px,则子元素2em的大小为 2*16 = 32px

演示范例如下:

直观效果为:rem 只和根元素有关,不会因嵌套而层层放大。而 em 因和父元素有关,嵌套越深,放大倍数越多。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>rem和em效果演示</title>
  </head>
  <body>
    <div class="mainBox">
      <p>根元素的font-size为20px</p>

      <div class="box1">
        <p>box1的font-size为2rem的效果为40px</p>

        <div>
          <p class="child">box1的子元素2rem的效果仍为40px</p>
        </div>
      </div>

      <div class="box2">
        <p>box2的font-size为2em效果为40px</p>

        <div>
          <p class="child">box2的子元素2em的效果为80px</p>
        </div>
      </div>

      <div class="box3">
        <p>box3的font-size为12px</p>

        <div>
          <p class="child">box3的子元素2em的效果为24px</p>
        </div>
      </div>
    </div>
    <style>
      .mainBox {
        display: flex;
      }
      div {
        border: 1px solid;
      }
      html {
        font-size: 20px;
      }
      .box1 {
        font-size: 2rem;
      }
      .box1 .child {
        font-size: 2rem;
      }

      .box2 {
        font-size: 2em;
      }
      .box2 .child {
        font-size: 2em;
      }

      .box3 {
        font-size: 12px;
      }
      .box3 .child {
        font-size: 2em;
      }
    </style>
  </body>
</html>

最佳实践

若某些模块,如范例中的 box3 需要单独设置与根元素不同的字体大小,则在box3内部的子元素需随 box3 字体大小变化的内容,不能使用 rem 为单位,而应使用 em。

em 维护的是某模块内嵌套元素固定的比例关系

其他情况,都推荐使用 rem ,以便通过根元素字体大小的适配,就能实现整个网页的自适应。

目录
相关文章
|
前端开发 JavaScript Serverless
揭秘CSS布局神器:vw/vh、rem、%与px大PK,掌握它们,让你的网页设计秒变高大上,面试难题迎刃而解!
【8月更文挑战第4天】在Web开发中,合理选择CSS单位对响应式布局至关重要。本文探索viewport单位(vw/vh)、rem、百分比(%)及像素(px)的基础知识与应用场景。通过代码示例,展示如何运用这些单位实现全屏布局、尺寸比例调整、灵活的元素大小及固定尺寸。最后,模拟面试题,介绍如何仅用CSS实现一个元素的高度为其宽度两倍且响应视口变化的方法。
776 8
|
前端开发 JavaScript
vite中css最佳实践:使用postcss完善项目中的css配置
【8月更文挑战第3天】使用postcss完善项目中的css配置
3419 1
|
前端开发
css中px和em的区别
css中px和em的区别
164 0
|
前端开发
css中px和em的区别
css中px和em的区别
|
前端开发 UED 开发者
CSS基础-属性值单位:px, em, rem, %
【6月更文挑战第7天】本文探讨了CSS中四种关键的尺寸单位:像素(px)、相对单位(em)、rem和百分比(%)。px提供稳定显示但不适用于响应式设计;em根据上下文动态调整,但嵌套使用可能导致计算复杂;rem简化了嵌套计算,适合作为响应式设计的选择;%用于流体布局,但可能在复杂结构中引起不稳定。理解各单位特性并结合现代布局技术,能提升网页布局的美观性和用户体验。
302 3
|
编解码 前端开发
CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )
CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )
216 0
|
前端开发 JavaScript
CSS 【详解】响应式布局(含 rem 详解)
CSS 【详解】响应式布局(含 rem 详解)
294 0
|
移动开发 JavaScript 前端开发
rem的适配方案,css文件和js文件的引入方式,特色小边框的制作,DS-Digital.ttf数字展示屏的使用方法:,自适应图片 background-size,jQuery爆bug,a和盒子居中,
rem的适配方案,css文件和js文件的引入方式,特色小边框的制作,DS-Digital.ttf数字展示屏的使用方法:,自适应图片 background-size,jQuery爆bug,a和盒子居中,
|
前端开发
CSS3中的Rem值与Px之间的换算
bootstrap默认 html{font-size: 10px;}   rem是一个相对大小的值,它相对于根元素, 比如假设,我们设置html的字体大小的值为html{font-size: 87.5%;}(也就是14px)。
1019 0
|
6月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。

热门文章

最新文章