高清屏幕适配问题

216 阅读1分钟

0、移动端如何适配:

juejin.cn/post/695904…

1、css样式里面写的像素是逻辑像素(设备独立像素)

比如我设置一个div的width:375px

2、通过检查看到的像素是物理像素

image.png

3、我在css里面写的375px,为什么运行代码后变成了1125px?

举个例子,这个img我的代码里写的16px:

image.png

但是实际上渲染出来是48px:

image.png

仔细观察右边会发现,我们所有的元素,他的width和height的单位不再是px,而是rem。

所以,很明显我们在打包的时候,会把所有的css文件解析一遍,把px换成rem。在不同的分辨率屏幕中,设置不同的根元素(html)的font-size,这就导致了在不同分辨率的屏幕中,img的变成了48px。

一句话概括,html的font-size变了,同样rem换算出来的px就不同了。

4、1px边框问题

出现场景:我写了一个下划线,width:100%,height:1px,在iPhone6上这条下划线变成了2px。其原理如上述:因为iphone6的html根元素的font-size是非高清屏幕的2倍,因此同样的rem,在iPhone6上就变成了2px。因此需要通过scaleY(0.5)把它缩放为原来的一半。

juejin.cn/post/684490…