背景
目前移动wap最成熟的rem适配方式,在安卓部分机型上适配文字大小时,由于换算成rem单位后,安卓系统里面的浏览器对该rem值的小数位处理机制不一致(有的会四舍五入,而有的可能只保留整数等等),会导致安卓系统下文字大小与设计稿存在偏差的明显缺陷。本文针对上述缺陷提出了一种通过JS-FontSize适配文字大小的解决方案。
思路
- 1、该方法就是js渲染模版之前,通过js计算屏幕宽度与设计稿宽度之比(用于后面步骤2适配文字换算)
- 2、循环12~44之间偶数文字大小(包括12和44,选择这个大小区间,是因为基本可以覆盖设计稿文字大小范围),乘以步骤1里面拿到的比,获得适配当前屏宽的对应字体大小对象,格式示例:{key:value,key:value…}
- 3、在编写模版的时候,直接用约定好的key值(推荐key值为:fs + 设计稿文字大小,比如28,这里key就是:fs28)取步骤2里面得到的对象里面的value值,设置行内样式,以实现文字大小适配
适用条件
- 1、js渲染模版
- 2、移动wap
细节
1、js渲染之前,计算好12~44换算后对应的文字大小
1 | // 文字大小适配对象 |
2、渲染的时候,在模版上写入对应的文字style
1 | style={G_FONTSIZE_STYLES.fs28} |