一、初次遇见
在使用rem
方式适配,遇见过两个基准值
- 一个是以
375px
为基础,根元素字体大小为20px
,其余尺寸等比例缩放,即根元素字体大小与屏幕宽度比例为20/375
。(jQuery.weui
方案) - 一个是以
375px
为基础,根元素字体大小为37.5px
,其余尺寸等比例缩放,即根元素字体大小与屏幕宽度比例为1/10
。(flexible.js
方案)
二、结合设计稿、SASS
一般设计师给出来的设计稿大小是实际大小的两倍,以iPhone 6
的设计稿为例,设计稿的大小为750px
,实际iPhone 6
的大小为375px
。
在思考过后,可得出一个通用的计算函数,输入参数$px
为设计稿的实际长度,于是有:
@function px2rem($px) {
$rem: 方案比例 * 设计稿宽度;
@return $px/$rem * 1rem;
}
以750px
的设计稿为例,有:
@function px2rem($px) {
$rem: 1/10 * 750px;
@return $px/$rem * 1rem;
}
三、改进的空间
以上的两种方案及其他方案需要动态去改变根元素的大小,大多数都是通过js
的方式去调整大小,有一定的耦合度。
在这里,还有一个方案,即用vw
来动态调整根元素的大小(当然,也可以用vm
来替代rem
),有:
html {
font-size: 37.5px;
font-size: 10vmin;
}
@media only screen and (max-width: 320px) {
html {
font-size: 32px;
}
}
@media only screen and (min-width: 540px) {
html {
font-size: 54px;
}
}
@media only screen and (min-width: 1080px) {
html {
font-size: 108px;
}
}
四、总结
只有学习,学习,再学习,才能跟得上前端的脚步。