视口
一、Layout Viewport 布局视口
layout viewport
(布局视口),它的宽度默认值是设备厂家指定的 ,为了能够正常显示为桌面设计的网站,一般把这个默认值设置的比较宽 比如980px
获取: 这个 layout viewport 的宽度可以通过 document.documentElement.clientWidth
来获取
作用: 用于解决早期的 PC端页面 在手机上的显示问题
二、Visual Viewport 视觉视口
visual viewport(视觉视口)表示用户正在看到的网站的区域 (注意:使网站的区域)
获取: visual viewport 的宽度可以通过 window.innerWidth 来获取
三、Ideal viewport 理想视口
ideal viewport(理想视口)对于移动设备而言,是最理想的视口尺寸
作用: 无论在何种分辨率的屏幕下,那些针对 ideal viewport 而设计的网站,不需要用户手动缩放,也不需要出现横向滚动条,都可以完美的呈现给用户
四、Viewport 视口控制
4.1 通过 meta 控制 viewport
目的: 调整 layout viewport
的宽度 与 ideal viewport
的宽度保持一致(设备有多宽,我们的布局视口就有多宽)
语法:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
属性:
属性 | 作用 | 取值 |
---|---|---|
width | layout viewport(布局视口)定义视口的宽度,单位为像素 | 正整数 或 device-width |
height | layout viewport(布局视口)定义视口的高度,单位为像素 | 正整数 或 device-height |
initial-scale | 定义初始缩放值 | [0.0-10.0] |
minimum-scale | 定义缩小最小比例,它必须小于或等于maximum-scale设置 | [0.0-10.0] |
maximum-scale | 定义放大最大比例,它必须大于或等于minimum-scale设置 | [0.0-10.0] |
user-scalable | 定义是否允许用户手动缩放页面,默认值yes | yes/no |
解读:
width=device-width
: 将layout viewport
(布局视口)的宽度设置ideal viewport
(理想视口)的宽度initial-scale=1
:layout viewport
(布局视口)的宽度设置为ideal viewport
(理想视口)的宽度
width=device-width
与 initial-scale=1
的作用相同,但是有各自的缺陷:
-
width=device-width
: 所有浏览器都能把当前的viewport
宽度变成ideal viewport
的宽度,但是在iphone
和ipad
上,无论是竖屏还是横屏,宽度都是竖屏时ideal viewport
的宽度(iphone
和ipad
横 竖不分) -
initial-scale=1
:IE
无论是竖屏还是横屏都把宽度设为竖屏时ideal viewport
的宽度(IE
横竖不分) -
完美解决方案: 两者都写上去,这样就
initial-scale=1
解决了iphone
、ipad
的毛病,width=device-width
则解决了IE的毛病