viewport
- PC 端: 浏览器可视区的大小
- 移动端,绝大多数情况下 viewport 都大于浏览器可视区,保证 PC 页面在移动浏览器上面的可视性
通过在 meta 标签中配置viewport
特性,定义适口的各种行为
主要参考资料 viewport 详解 移动端适配总结
view 详解
layout viewport
虚拟的布局入口,大于实际屏幕, 元素的宽度继承于layout viewport
,用于保证网站的外观特性与桌面浏览器一样。layout viewport
到底多宽,每个浏览器不同。Android 和 iPhone 基本上都为 980px,可以通过document.documentElement.clientWidth
获取visual viewport
用来承载layout viewport
的视口,当前显示在屏幕上的页面,即浏览器可视区域的宽度,visual viewport
的尺寸不会是一个固定的值,甚至每款设备都可能不同,所以无法进行任何修改和设置,几种常见设备的 visual viewport 尺寸:- iPhone4~iPhone5S: 320*480px
- iPhone6~iPhone6S: 375*627px
- iPhone6 Plus~iPhone6S Plus: 414*736px
ideal viewport
它类似于布局视口,但宽度和视觉视口相同,这就是完美视口ideal viewport
,为浏览器定义的可完美适配移动端的理想viewport
,固定不变,可以认为是设备视口宽度。比如iphone7
为 375px,iphone7p
为 414px。,用户不用缩放和拖动网页就能够很好的进行网页浏览。而完美视口也是通过viewport meta
的某种设置来达到。
适配
<meta
name="viewport"
content="width=device-width,initial-scale=1,user-scale=no"
/>
width
用来定义layout viewport
的宽度,如果不指定该属性(或者移除viewport meta
标签),则layout viewport
宽度为默认值。width=device-width
此时的layout viewport
将成为ideal viewport
,因为layout viewport
宽度与设备视觉视口宽度一致了, 这是移动端适配不可或缺的步骤initial-scale
设置页面的初始缩放值,并且这个初始缩放值是相对于ideal viewport
缩放的,最终得到的结果不仅会决定visual viewport
,还会影响到layout viewport
user-scalable
是否允许用户进行缩放的设置
设备像素比 dpr 与 rem 的适配方案
rem 是相对于根元素 html 的 font-size 来做计算。通常在页面初始化时加载时通过对 document.documentElement.style.fontSize 设置来实现。
最后更新日期 2019-03-14