媒体查询+rem+less 自适应
1、根据媒体查询设置html的font-size的大小,less代码如下:
//假设手机设置为10等分,html的字体大小等于屏幕大小除以10
@no:10; @media screen and (min-width: 320px) { html{ font-size: 320px / @no; //32px } }
//375 iphone678 @media screen and (min-width: 375px) { html{ font-size: 375px / @no; //37.5px } }
@media screen and (min-width: 750px) { html{ font-size: 750px / @no; //75px } }
2、那么rem是怎么换算的呢?我们可以简单的举个例子:
比如一张设计稿的宽度是750px(一般),你测量了一个150像素的宽度,这个时候你要怎么设置宽度呢? 实际上就是 '测量的像素' / 'html的字体大小',也就是150 / 75 = 2, css中就可以直接设置width:2rem;
或者width:100rem / 50;(推荐,省去计算时间) 同样的,如果设计稿上的宽度为375px,你测量一个75像素的宽度,同样按照公式: 75 / 37.5 = 2,css中宽度直接设置为width:2rem;
如何还是觉得换算麻烦,可以使用vscode里面自带的的插件(ccsrem),输入px的时候会自动转换为rem,转换的比例可以在vscode配置修改。 后续需要在媒体查询中补全其他手机的屏幕宽度大小,然后根据公式计算得到对应的font-size大小,那么就可以根据rem达到自适应的效果