CSS3中的rem单位

1、rem介绍

rem是什么?

它的全称是 font size of the root element (根元素的字体大小)
它是CSS3中新增长的一个尺寸(度量)单位,根节点(html)的font-size决定了rem的尺寸,也就是说它是一个相对单位,相对于(html)。

html

浏览器的默认字体?

浏览器的默认的font-size是16px,1rem默认就等于16px。(chrome最小字体为12px)

web

rem能够作什么及它的应用场景?

用来作web app的屏幕适配,由于不一样手机型号的屏幕大小都不一样,因此这时候咱们就不能用px来作单位,rem是适配不一样手机屏幕的一种方案。

chrome

设置 的font-size来改变rem尺寸

:root{
      font-size:20px;
     }
.box{
      width:1rem;
      height:1rem;
      background-color:purple;
    }

将根元素html的font-size设置为20px,此时box的宽高都为20px,也就是1rem = 20px浏览器




2、步骤

1. 首先用js根据不一样的视窗宽度动态的改变根元素的font-size

//获取视窗宽度(兼容性写法)
let rootWidth = document.documentElement.clientWidth || document.body.clientWidth;

//获取html元素
let rootDom = document.querySelector('html');

//动态设置html的font-size(除以10是让浏览器的font-size达到比较合适目的)
rootDom.style.fontSize = rootWidth / 10 + 'px';


2. 根据设计师的设计稿中的px单位转换成rem单位


如何正确的经过px值计算rem值



px单位 / font-size【动态】 = rem单位【动态】 (错误的想法,有的小伙伴迷糊在这里)
px单位 / font-size【固定】 = rem单位【固定】 (正确的想法,有的小伙伴可能开始想不明白)
这里要注意的是你计算的font-size是固定的,而不是html的font-size是固定的,不少新人困惑在这里




错误的计算方法:(动态font-size)
200px / (320 / 10)【iphone5】 = 6.25rem
200px / (375 / 10)【iphone6】 = 5.333rem
200px / (768 / 10)【ipad】 = 2.604rem


这样的话
在【iphone5】下6.25rem 就是200px
在【iphone6】下5.333rem 就是200px
在【ipad】下2.604rem 就是200px


咱们经过了(图纸的px值 和 动态的font-size值)求出了动态的rem


按照这样的方式设置rem,在不一样的尺寸的机型下都是500px,那我还不如直接写死500px,由于屏幕的尺寸大小都是不一样的,因此咱们这样作毫无心义。(至关于咱们根据一个固定的px值求不一样机型下的rem值)。




正确的计算方法:(固定font-size)以iphone6为基准
200px / (375 / 10)【iphone6】 = 5.333rem


这样的话


在【iphone5】下5.333rem 就是170px
在【iphone6】下5.333rem 就是200px
在【ipad】下5.333rem 就是410px

app

也能够以【iphone5】为基准
200px / (320 / 10) 【iphone5】 = 6.25rem


这样的话


在【iphone5】下6.25em 就是200px
在【iphone6】下6.25rem 就是234px
在【ipad】下6.25rem 就是480px




这样就达到用rem来适配不一样尺寸的屏幕了


咱们以一种机型的font-size为基准,来计算出一个固定的rem,根元素html的font-size是动态的,因此这个rem值会根据不一样机型的font-size达到适配的目的(注意:你参与计算的font-size值毫不能是动态的,不然毫无心义)。


设计师常选择iPhone6做为基准设计尺寸,咱们通常以iPhone6为基准iphone

相关文章
相关标签/搜索