好程序员web前端技术分享移动端页面布局
一、弹性布局(100%布局)的特点
顶部与底部的bar不管分辨率怎么变,它的⾼度和位置都不变; 中间每条招聘信息不管分辨率怎么变,招聘公司的图标等信息 都位于条目的左边,薪资都位于右边.
特点:关键元素高宽和位置都不变,只有容器元素在做伸缩变换。对于这类app,记住一个开发原则就好:文字流式,控件弹性,图片等比缩放
二、什么是屏幕尺寸?
移动端屏幕尺寸:屏幕对角线的长度,单位是英寸(1英寸=2.54厘米)。
常见的尺寸有:2.4,2.8,3.5,3.7,4.2,5.0,5.5,6.0
三、什么是屏幕分辨率?
屏幕分辨率:指横纵方向上的像素点数,单位为px,1px=1个像素点。
一般以纵向像素横向像素表示 一个手机的屏幕分辨率。如:19601080
这里的一个像素是指物理设备的一个像素点。
四、什么是屏幕像素密度?
屏幕像素密度:屏幕上每英寸可以显示像素点的数量,单位是ppi(pixels per inch)缩写。
屏幕像素密度与屏幕尺寸,屏幕分辨率有关,在单一条件下,屏幕尺寸越小,分辨率越高,像素密度越大,反之越小。
iphone3GS和iphone4区别:屏幕尺寸一样,屏幕分辨率相差一倍,屏幕像素密度也相差一倍。
PX:像素,将显示器分成非常细小的方格,每一个方格就是1px。
注:(网页重构中使用的px 和屏幕分辨率的px不一定是一样的大小)。
实际上像素分为两种:设备像素和逻辑像素( CSS像素)
DPR:设备像素比DPR(devicePixelRatio)是默认缩放为100%的情况下,设备像素和CSS像素的比值
在早先的移动设备中,并没有DPR的概念。随着技术的发展,移动设备的屏幕像素密度越来越高。从iphone4开始苹果公司推出了所谓的retina视网膜屏幕。之所以叫做视网膜屏幕,是因为屏幕的PPI(屏幕像素密度)太高,人的视网膜无法分辨出屏幕上的像素点。iphone4的分辨率提高了一倍,但屏幕尺寸却没有变化,这意味着同样大小的屏幕上,像素多了一倍,于是DPR = 2
五、等比缩放布局(rem布局)
1.rem是什么?
rem(font size of the root element)是指相对于根元素的字体大小的单位。
2.为什么web app要使用rem?
实现强大的屏幕适配布局(淘宝,腾讯,网易等网站都是rem布局适配)rem能等比例适配所有屏幕,根据变化html的字体大小来控制rem的大小,
六、vw vh
vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。
vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。
vmin:vw和vh中较小的那个。
vmax:vw和vh中较大的那个。
vw, vh, vmin, vmax:IE9+局部支持,chrome/firefox/safari/opera支持,iOS safari 8+支持,Android browser4.4+支持,chrome for android39支持
七、Rem配合VW做等比缩放布局
1.rem
rem是指相对于根元素的字体大小的单位。
2.根元素
如果根元素是相对设备尺寸自动变换。
3.VW
视窗宽度,1vw等于视窗宽度的1%。
4.VW转换成PX赋值给font-size
例:设备的分辨率为6401136,逻辑像素为320568 1VW=3.2px
Font-size:100px;转换成VW font-size:31.25vw;
1rem=31.25vw可一起结合写等比例缩放布局。
八、100%布局(弹性布局)
实现方案:采用PX方式,借助弹性盒实现。
九、等比例缩放布局(rem布局)
1.html{font-size:31.25vw(可变:设计稿);}
31.25vw=100px(50px或100px为基准单位(好算))/3.2px
3.2px=320(视口宽度)/100(1vw等于视窗宽度的1%。)
元素大小(rem)=原图量尺寸/dpr/100(50px、100px为基准单位(好算))
2,用媒体查询设置html的font-size配合rem(设置判断条件的节点)
3, 通过JS动态设置html的font-size同样元素单位也要配合rem实现等比例缩放布局。