像素
物理像素:任何设备的物理像素的数量都是固定的,它是屏幕能显示的最小粒度。
CSS像素: CSS 像素是一个抽象的单位,主要用于浏览器肯定 Web 页面的内容。
在普通屏下,一个 CSS 像素对应一个设备像素html
CSS 像素与 物理像素的关系:浏览器
1. 屏幕特性 2. 用户缩放的行为
理想视口
布局视口的默认宽度并非一个理想的宽度,对于移动设备来讲,最理想的状况是用户进入界面再也不进行缩放。只有专门为移动设备开发的网站,才有理想视口这么一说iphone
<meta name="viewport" content="width=device-width"/>
width:布局视口的宽
device-width:设备独立像素的值布局
当加上 meta,设备独立像素 = CSS 像素 = 375字体
没有 meta:网站
物理像素: 750 设备独立像素:375 CSS 像素:980 同一个元素,在不一样的设备上,呈现的效果同样,等比
有 meta:this
物理像素: 750 设备独立像素:375 CSS 像素:375 同一个元素,在不一样的设备上,呈现的效果不同,不等比
dpr(像素比) = 物理像素/设备独立像素设计
移动端缩放:布局视口永远不变code
放大:CSS3 像素面积变大,元素像素值不变,视觉视口反而是变小了 从技术层面上来说,缩放就是放大或缩小 CSS 像素面积的过程,改变的是视觉视口的尺寸。
1. 手指按下 ontouchstart 2. 手指移动 ontouchmove 3. 手指离开 ontouchend 取消浏览器的默认行为 document.addEventListener("touchstart", function(event) { event.preventDefault() }) 移动端的准备工做: 1. meta标签 2. 清除默认样式 3. 清除系统滚动条 4. 取消默认行为 5. 适配 6. 点透处理 点透处理方案: 1. 让 a 元素不能进行跳转,禁止浏览器的默认行为 2. box 盒子消失,点击 a 元素,a 元素该去跳转 document.addEventListener("touchstart", function(){ event.preventDefault() }) var aTags = document.querySelectorAll('a') for (var i = 0;i < a.length;i++) { aTags[i].addEventListener("touchstart", function(){ window.location.href = this.href }) }
竖向滑屏htm
// 手指按下(父元素绑定事件) // 手指移动(不须要嵌套在按下事件中) 若是手指抬起来的时候没有额外的动做,就不须要写手指抬起事件
em: 参照自身的字体大小 rem:参照根元素的字体大小(html,默认16px)
rem 适配原理:
1. 页面中的全部元素,单位都是 rem 2. 把整个屏幕的宽度设置成根元素的字体大小(1 rem = 375px) var styleNode = document.createElement('style')
图纸较大,750,1080 页面元素较多
设计图纸较小 320
页面比较少
在不一样的屏幕上,页面布局不同
dpr = 2 = 物理像素/CSS 像素