document.documentElement.clientWidth 不包含滚动条css
window.innerWidth +滚动条ios
window.outerWidth +浏览器边框程序员
window.width 屏幕区域浏览器
IPhone 6 的 屏幕分辨率 为 750*1334布局
IPhone 6 的尺寸 为 4.7 英寸网站
IPhone 6 的 像素比 DPR 为 2 window.devicePixelRatio;spa
IPhone 6 的 独立像素 为 375*667 window.innerWidth;blog
IPhone 6 的布局(视口)像素为 980*1743 document.documentElement.clientWidth开发
在普通的 PC 端,视口的默认宽度 与 浏览器的窗口宽度 一致io
若是直接将 PC 端页面 放到移动端,会是一个 压缩的效果
如何将 数以万计 或者 数以亿计 的 PC 端网页 完整的呈如今移动端设备,而不会出现滚动条?
此时,移动端浏览器必须有一个容器,容器 规定 PC 端页面 如何在移动端浏览器呈现
移动端浏览器厂商要实现的目标:
在小屏幕的移动设备上,尽量的缩小网站来让用户看到网站的全貌。
因而,移动端浏览器厂商,将 布局视口 默认设置地比 手机屏幕 大,如 IPhone6 的布局视口为 980px
移动端的三个视口
布局视口,即容器。用来装 PC 端页面的
默认的布局视口宽度 远大于 屏幕的宽度
PC 端中从 初始包含块 开始盒子,而在移动端,是从 布局视口 开始填盒子的
所以,必定程度上,能够把移动端的 布局视口 理解为 初始包含块
视觉视口 与 设备屏幕的区域 同样大
视觉视口的像素,是 css 像素,而且会随着用户的缩放而改变
视觉视口像素
能够经过 window.innerWidth 获取,可是在 Android 2 ,Oprea mini,UC 8 中没法正常获取
据分析,布局视口 的默认宽度并不是一个理想的宽度
这也是为何苹果和效仿苹果的浏览器厂商 会引进理想视口
只有专门为移动设备开发的网站,才有 理想视口 一说。
物理像素 750
独立像素 375
css 像素 980
像素比 DPR = 物理像素 / 独立像素 = 750 / 350 = 2
物理像素 750
独立像素 = css 像素 = 375
像素比 DPR = 物理像素 / 独立像素 = 物理像素 / css 像素 = 750 / 375 = 2
<meta name="viewport" content="width=375" />
像这样直接指定 具体数值,ios 会呈现出不理想效果
在 PC 浏览器,最干净的视口就是约束 css 布局的视口,决定了用户能看到什么
移动设备上,视口分为两个:布局视口限定 css 布局,视觉视口决定用户看到什么
移动设备上,一旦加入 meta 标签,就有了理想视口,对于特定设备上特定浏览器的布局视口的一个理想尺寸