适配方案目的
- 让一些不能等比自适应的元素,达到当设备尺寸发生改变的时候,等比例适配当前设备。
- 使用媒体查询根据不同设备按比例设置html的字体大小,然后页面元素使用rem左尺寸单位,当html字体大小变化元素尺寸也会发生变化,从而达到等 比例缩放的适配。
rem实际开发适配方案
- 按照设计稿与设备宽度的比例,动态计算并设置html根标签的font-size大小 ;(媒体查询)
- CSS中, 设计稿元素的宽、高相对位置等取值,按照同等比例换算为rem为单位的值。
rem适配方案技术试用(市场主流)
- 方案1 less+媒体查询+rem
- 方案2 (推荐) flexible.js+rem
方案1 less+媒体查询+less技术
常见的设计稿尺寸宽度
设备 |
常见宽度 |
iphone4.5 |
640px |
iphone678 |
750px |
android |
常见的320px 360px 375px 384px 400px 414px 500px 720px ,大部分4.7-5寸的安卓设备为720px |
动态设置html标签font-size大小
- 假设设计稿是750px
- 假设我们把整个屏幕划分为15等分(划分标准不一可以是20分也可以是10等分)
- 每一份作为html字体大小,这里就是50px
- 那么在320px设备的时候,字体大小为320/15就是21.33px
- 用我们页面元素的大小除以不同的html字体大小会发现他们比例还是相同的
- 比如我们以750位标准设计稿
- 一个100×100像素的页面元素在750屏幕下,就是100/50 转化为rem是2rem*2rem 比例是1比1
- 320屏幕下,html字体大小为21.33 则2rem=42.66排序此时宽和高都是42.66 但是宽和高的比例还是1比1
- 但是已经能实现不同尺寸下 页面元素盒子等比例缩放的效果。
元素大小取值方法
- 最后的公式: 页面元素的rem值= 页面元素值(px) /(屏幕宽度/划分的份数)
- 屏幕宽度/划分的份数就是html font-size的大小
- 或者:页面元素的rem值(px) /html font-size字体大小。
@media screen and(min-width:320px){
html{
font-size:21.33px