01_移动端基础

基本概念:

屏幕尺寸:

屏幕对角线长度(英寸) 1英寸=2.54cm

屏幕分辨率:

横纵向上像素点数(物理像素)

屏幕密度:

每英寸上物理像素个数

高清屏:
  • 一种具备超高像素密度的液晶屏;
  • 同样大小屏幕上显示物理像素点数由一个变为多个,
  • 高清屏和普通屏相比,相同区域的物理像素点,高清屏是普通屏的4倍
视口尺寸:

代表横纵向上css像素个数

4个像素 3个视口 2个操作 1个比例

4个像素:
物理像素:
	(屏幕分辨率)设备成像最小单位,横纵向上像素点数
	 一个物理像素占据的实际屏幕尺寸,在不同设备上是不一样的。

css像素:
	浏览器的最小单位,抽象单位(css像素->物理像素)
	 一个css像素最终会转换成物理像素在屏幕成像。

	一个css像素到底占多少个物理像素,和谁有关?
	    屏幕特性 用户缩放行为
	    * 不考虑用户缩放:
	    	没有viewport:
	    		这块屏幕横向上占据多少个物理像素
	    		这块屏幕横向上占据多少个css像素
	    	有viewport:
	    		像素比=一个方向上占据一块屏幕所需要的物理像素的个数 /
	    		一个方向上占据一块屏幕所需要的css像素的个数
	    * 考虑用户缩放:
	    	放大:1个css像素占据更多的物理像素
	    	缩小:1个css像素占据更少的物理像素

设备独立像素:(也称密度无关像素)
	可认为计算机坐标系中的一个点,
	这个点代表一个可以由程序使用的虚拟像素,然后由相关系统转换为物理像素。
	设备对接css像素接口,一旦css像素与设备独立像素挂上钩(width=device-width),
	此时像素比才能发挥作用。

位图像素:
	图像的最小单位
	位图像素与物理像素1:1时,屏幕才能清晰展示图像
3个视口
布局视口:
	(layout viewport)决定页面布局
	可以通过document.documentElement.clientWidth来获取

视觉视口:
	(visual viewport)决定用户能看到什么
	 一个css像素占据多少个物理像素和视觉视口有极大的关系
	 一个视觉视口包含的物理像素个数是确定的(分辨率)
	一个视觉视口包含的css像素个数是不确定的,和用户缩放行为有关
	视觉视口的宽度可以通过window.innerWidth 来获取,
	但在Android 2, Oprea mini 和 UC 8中无法正确获取。

理想视口:
	设备独立像素所代表的值(加meta标签之后);
	只有是专门为移动设备开发的网站,才有理想视口这一说。
	而且只有当在页面中加入viewport的meta标签,理想视口才会生效。
    <meta name="viewport" content="width=device-width" />
	这一行代码告诉我们,布局视口的宽度应该与理想视口的宽度一致
2个操作(放大和缩小)
用户的:只影响视觉视口
系统的:影响视觉视口和布局视口

放大:
    放大一个css像素的面积,视觉视口尺寸变小,
    一个css像素包含的物理像素个数变多
缩小:
    缩小一个css像素的面积,视觉视口尺寸变大,
    一个css像素包含的物理像素个数变少
1个比例(像素比)
像素比:
    (DPR)(devicePixelRatio)     
    物理像素/设备独立像素
    可通过window.devicePixelRatio获取(兼容性问题严重)
    
    像素比 = 
        一个方向上占据一块屏幕所需要的物理像素的个数 /
		一个方向上占据一块屏幕所需要的设备独立像素的个数 ;
		
当写上<meta width='device-width'>时,
    css像素与设备独立像素连接起来。
即:
    像素比 = 一个方向上占据一块屏幕所需要的物理像素的个数 /
             一个方向上占据一块屏幕所需要的css像素的个数

3个意外

1.太大的元素
	使用完美视口解决太大的元素超过视觉视口后不出滚动条的问题
	完美视口:width=device-width initial-scale=1.0
2.width=device-width和initial-scale的冲突,谁大听谁的
3.等比问题:
	没有加name为viewport的meta标签
		一个相同css像素大小的区域在不同的设备是等比的,(像素比)
		在不同的设备上占据的实际物理大小(英寸)不一样
		页面展示太小,用户体验不好
	加name为viewport的meta标签
		一个相同css像素大小的区域在不同的设备是不等比的,
		在不同的设备上占据的实际物理大小(英寸)是一样的
	等比是不是一个必须的需要?
	    百分百还原设计图 
	        ---> 在不同设备上要等比(文字要完美清晰的展示)
			 ----> 必须加meta标签(不等比)
				 ---> 适配!!!!(加上meta标签后也得等比)

理解

css像素能不能代表一个设备的大小?如果能代表,这个值确不确定?
能 不确定
屏幕大小之间的比较应该使用绝对单位:屏幕尺寸(对角线长度)
物理像素与css像素比例的维护是谁在维护?维护规则是什么?
视觉视口(1.决定用户能看到什么;2.包住整个布局视口)

物理像素:屏幕的分辨率
css像素: 布局视口尺寸

加name为viewport的meta标签
像素比
没有加name为viewport的meta标签
布局视口尺寸 / 屏幕的分辨率
四个像素之间的关系
设备独立像素
物理/设备像素
css像素
位图像素

* 物理像素和设备独立像素:
    像素比: 一个方向上占据一块屏幕所需要的物理像素的个数 /
            一个方向上占据一块屏幕所需要的设备独立像素的个数  =2;
* 物理像素和位图像素:1:1的时候才能完美清晰的展示
* 物理像素和css像素
    普通屏:1比1
    高清屏:

加name为viewport的meta标签
    像素比

没有加name为viewport的meta标签
    布局视口尺寸 / 屏幕的分辨率
    
* css像素和设备独立像素
    没有加name为viewport的meta标签:没有关系
    加name为viewport的meta标签:可以认为css像素就是设备独立像素
* 注意@2x 和 @3x图的使用
像素比 到底是什么
* 像素比: 一个方向上占据一块屏幕所需要的物理像素的个数 /
        一个方向上占据一块屏幕所需要的设备独立像素的个数 ;
* 当写上<meta width='device-width'>时,
  css像素与设备独立像素连接起来。即
    像素比=一个方向上占据一块屏幕所需要的物理像素的个数 /
           一个方向上占据一块屏幕所需要的css像素的个数
理想视口什么时候出现? 像素比什么时候有用?
加name为viewport的meta标签
理想视口与设备之间的关系
理想视口的尺寸:设备独立像素所代表的值
不同浏览器在同一设备上理想视口的尺寸可能会不一样
一款浏览器在不同设备上理想视口的尺寸可能会不一样
思考视口的主线
本质上三个视口的物理尺寸就是屏幕尺寸
在不一样的情况下,各个视口所包含的css像素的个数是不一样的
布局视口包含的css像素的个数
980 1024 (浏览器不一样)
视觉视口包含的css像素的个数
默认情况(css像素和物理像素1:1)---> 屏幕的分辨率
移动端浏览器初始化的时候(视觉视口必须要包住布局视口)  
---> 布局视口包含的css像素的个数就是视觉视口所包含的
用户缩放(只影响视觉视口)
放大---> 视觉视口包含的css像素的个数变少
缩小---> 视觉视口包含的css像素的个数变多
理想视口包含的css像素的个数
设备独立像素所代表的值
缩放
* pc端的缩放:会改变元素的布局(布局视口)
* 移动端(缩放只改变视觉视口内css像素的个数)
* 放大
    使css像素变大,一个css像素所包含的物理像素的个数变多,元素变的更大
    视觉视口内,css像素的个数变少
* 缩小
    使css像素变小,一个css像素所包含的物理像素的个数变少,元素变的更小
    视觉视口内,css像素的个数变多
怎么获取三个视口的值
* 布局视口:(基本没有兼容性问题)
    document.documentElement.clientWidth
* 视觉视口:(有一点兼容性问题)
    window.innerWidth
* 理想视口:(兼容性问题极大)
    screen.width
完美视口以及meta标签
过大的元素--->完美视口
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
哪些操作会影响布局视口
width=device-width
initial-scale
重力感应(横竖屏切换)
等比问题
没有加name为viewport的meta标签
一个相同css像素大小的区域在不同的设备是等比的,
在不同的设备上占据的实际物理大小(英寸)不一样
加name为viewport的meta标签
一个相同css像素大小的区域在不同的设备是不等比的,
在不同的设备上占据的实际物理大小(英寸)是一样的
等比是不是一个必须的需要?
百分百还原设计图 ---> 在不同设备上要等比(文字要完美清晰的展示)
----> 必须加meta标签(不等比)
---> 适配!!!!(加上meta标签后也得等比)
meta标签
<meta name="viewport" content="width=device-width,initial-scale=1.0,
    minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值