移动端rem的问题

如果width以rem为单位的话,会出现如下问题:

在这个问题的基础上:http://segmentfault.com/q/1010000002442078

当width<480时,按照设定的html font-size应为10px,但是chrome最小只能是12px。如果width=320时,元素的width为30rem,想要的效果是300px,结果为360px,且超出屏幕宽度。

这种问题需要解决吗?因为chrome默认最小为12px,我就怕其他移动端的浏览器也有这种默认情况的话,怕出问题,所以请教一个,这种情况最好的解决方案是啥?

总结:这个问题其实也挺好解决的。只是自己之前没换算对。
假设320px=14px;

html {

font-size: 87.5%;
}
@media only screen and (min-width: 481px){

html {

font-size: 131%!important;

}
}
@media only screen and (min-width: 561px){

html {

font-size: 153%!important;

}
}
@media only screen and (min-width: 641px){

html {

font-size: 175%!important;

}
}
这样的话,不会出现<12px的字体;屏幕比较窄时,元素的宽度也没有问题。
但是font-size=14px,以后计算比较麻烦,如果设为20px,可以方便以后计算。
html {

font-size: 20px;
}
@media only screen and (min-width: 481px){

html {

font-size: 30px!important;

}
}
@media only screen and (min-width: 561px){

html {

font-size: 35px!important;

}
}
@media only screen and (min-width: 641px){

html {

font-size: 40px!important;

}
}
这样才比较好一些,其实的字体计算以20px为基准,元素宽度也是。

总结,为了使浏览器中的字体大小不小于12px,给html设置的初始值大于12px就可以了。

阅读 5.4k
3 个回答

-webkit-transform:scale(0.8125);
css3这个用法可以

你把html的默认字体大小设成20px不就行了,通过和20px比较,计算比例。

iPhone6以下其实图标和字体大小是不需要改变的,宽度大于375px的设备可以使用媒体查询,等比放大界面,也就是重新设置html的字体大小。

当然你也可以使用js,判断屏幕大于375的时候动态计算html字体大小

html设置为100px,然后1px就是0.01rem

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏