1、移动端和PC端网页不同点?
- PC屏幕大,网页固定版心
- 手机屏幕小, 网页宽度多数为100%
2、分辨率
物理分辨率/设备分辨率:指的就是当前屏幕所拥有的物理像素点的个数!!!它是不可被软件(驱动)改变,出厂就固定了的;
逻辑分辨率:指的就是设备宽度和高度,单位为像素,设计图会根据逻辑分辨率去设计页面,它是可以被软件/驱动所更改的
物理像素点:显示图像最小单位
PPI:单位英寸内所拥有的物理像素点的个数,像素密度,密度越大,屏幕越清晰
3、视口
- 视口就是浏览器显示页面内容的屏幕区域
- 我们移动端布局想要的是理想视口就是手机屏幕有多宽,我们的布局视口就有多宽
- 想要理想视口,我们需要给我们的移动端页面添加 meta视口标签
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
4、二倍图(图片分辨率, 为了高分辨率下图片不会模糊失真)
物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了,比如苹果6\7\8 是 750* 1334
我们开发时候的1px 不是一定等于1个物理像素的
PC端页面,1个px 等于1个物理像素的,但是移动端就不尽相同
一个px的能显示的物理像素点的个数,称为物理像素比或屏幕像素比
例如:我们需要一个 50*50 像素(css像素)的图片,直接放到我们的手机里面会放大2倍变成 100 * 100,这样就会模糊
解决办法:我们直接放一个 100 * 100 图片,然后手动的把这个图片缩小为 50 * 50。这样将图放到手机里面,手机自动放大2倍变成 100 * 100,这样就不会造成图片模糊
我们准备的图片,比我们实际需要的大小大2倍,这种方式就是二倍图
5、flex布局
5.1、组成部分
- 默认主轴方向就是 x 轴方向,水平向右
- 默认侧轴方向就是y 轴方向,水平向下
5.2、justify-content 设置主轴上的子元素排列方式
5.3、align-items 设置侧轴上的子元素排列方式(单行)
注意:
弹性容器: 默认宽度和父元素宽度一样,默认的高度由内容所撑开
弹性盒子:弹性容器的最近一级子元素(亲儿子子元素)
1.默认的宽度由内容所撑开,默认的高度为父元素的高度(侧轴方向默认是拉伸);
2.没有块级,行内,行内块元素之分,统统都是弹性盒子(可以直接设置宽高,一行显示多个);
3.默认不换行,宁愿牺牲自己的宽度,都不会自动换行
伸缩比:flex 给弹性盒子添加
1.所有的弹性盒子都添加相同的flex值,均分弹性容器的宽度;如果flex值不同,根据比例进行分配
2.其他的盒子宽度固定,只有一个盒子设置了flex:1 --- 占据父元素剩余的宽度