移动端适配+响应式布局

1英寸:2.5c厘米
屏幕尺寸:屏幕对角线的长度,如honor 20 pro, 6.26英寸。
像素:屏幕成像点就是像素,每个像素都由红绿蓝三原色构成。(固定屏幕尺寸下,像素的物理尺寸大小和分辨率成反比。)
分辨率:指屏幕纵横方向上的像素点数,单位是px--pixel。(320*480分辨率就是横向320个像素纵向480个像素。)

从最初的颗粒感相当大的屏幕,到720p再到1080p,甚至于现在各家旗舰手机的2k屏幕,我们的物理分辨率在变得原来越大。这样就暴露出来一个问题,我们如果手机分辨率翻倍,我们的图像不就要被缩小一倍,我们难道要在每个设备上就出个设计稿,每个设备的分辨不尽相同啊,其实你担忧的问题,我们的乔帮主在很多年前就想到了。这就是我们的逻辑分辨率。

乔布斯在iPhone4的发布会上首次提出了Retina Display(视网膜屏幕)的概念,在iPhone4使用的视网膜屏幕中,把2x2个像素当1个像素使用,这样让屏幕看起来更精致,但是元素的大小却不会改变。从此以后高分辨率的设备,多了一个逻辑像素。这些设备逻辑像素的差别虽然不会跨度很大,但是仍然有点差别,于是便诞生了移动端页面需要适配这个问题,既然逻辑像素由物理像素得来,那他们就会有一个像素比值

设备像素比device pixel ratio简称dpr,即物理像素和设备独立像素的比值。为什么要知道设备像素比呢?因为这个像素比会产生一个非常经典的问题,1像素边框的问题。

1px边框问题

当我们css里写的1px的时候,由于它是逻辑像素,导致我们的逻辑像素根据这个设备像素比(dpr)去映射到设备上就为2px,或者3px,由于每个设备的屏幕尺寸不一样,就导致每个物理像素渲染出来的大小也不同(记得上面的知识点吗,设备的像素大小是不固定的),这样如果在尺寸比较大的设备上,1px渲染出来的样子相当的粗矿,这就是经典的一像素边框问题

至于其他解决一像素边框问题网上有一堆答案,在这里我推荐一种非常好用,并且没有副作用的解决方案

transform: scale(0.5) 方案

div {
    height:1px;
    background:#000;
    -webkit-transform: scaleY(0.5);
    -webkit-transform-origin:0 0;
    overflow: hidden;
}

视口(视窗): 看逻辑画布的窗口。在Web浏览器窗口中指文档可视区域。
那么在移动端如何配置视口呢? 简单的一个meta标签即可!

Viewport与跨屏适配:

Flex布局:

PC端、移动端的页面适配及兼容处理:

你可能感兴趣的:(css)