学习目标:
什么是rem?
学习内容:
rem:
rem是相对单位,是相对HTML根元素。
这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。
目前,除了IE8及更早版本外,所有浏览器均已支持rem。
优点,宽度自适应,可以完美适配不同宽度的屏幕
缺点,高度不固定,如果遇到高度要求很严格的就实现不了
r表示root root是根的意思 指html标签
1rem ==> html标签中的font-size的大小
1em ==> 父标签中的font-size的大小
如:html标签的font-size设置成了34px
1rem = 34px
2rem = 68px
3rem = 102px
适配:
在大屏上显示大盒子,在小屏上显示小盒子。
什么是适配?
如果是大屏,盒子或字体大上设置的大一点
如果是小屏,盒子或字体大小设置的小一点
10个字,在不同的手机,都是撑满一行。
使用媒体查询,实现适配:
媒体查询 类似于 编程语言中的if else
例如:
我有一张设计图,一行文字,10个字,在750屏上,是撑满一行的,还有一张图片,占手机屏的一半。
需要利用媒体查询+rem来适配,步骤如下:
1)得到设计稿 一般情况下,设计稿的尺寸是750px。
2)通常我们把浏览器的模拟器也调整成750px
3)严格按照设计稿,以rem为单位,把设计稿还原出来。
4)开始写样式,需要确定html标签的font-size,通常我会把fontsize
定成100px,叫rem的基准值。有一个盒子,width是20px 1rem = 100px。 盒子是20px
换成rem 换成0.2rem又量出一个盒子的宽度是55px,换成rem就是0.55rem。
说白了,量设计稿,量出来的Px单位,只需要除于100,就成rem单位
到此,你先不要管适配,你就在750px的屏上,还原750的设计稿。
5)最后一步,把写好的页面,迁移到其它屏上的,完成适配。
在迁移时,也需要换算。 换算如下:
在750px的屏上,html的font-size的大小为100px。
在375px的屏上,html的font-size的大小为50px。
在320px的屏上,html的font-size的大小为42.6666666px。
在414px的屏上,html的font-size的大小为55.2px。
如果使用媒体查询+rem来适配,需要写如下代码:
@media only screen and (width:750px) { html{ font-size: 100px; } }
@media only screen and (width:375px) { html{ font-size: 50px; } }
@media only screen and (width:320px) { html{ font-size: 42.6666px; } }
@media only screen and (width:414px) { html{ font-size: 55.2px; } }
∴如果我们写要适配的屏比较多,那么我们需要写大量的媒体查询的代码。
学习产出:
通过此次学习,我对rem有了深刻理解,同时对适配(rem自适应布局等)有了清晰的概念,收获良多。