什么是Viewport
手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,
通常这个虚拟的“窗口”(viewport)比屏幕宽,
这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),
用户可以通过平移和缩放来看网页的不同部分。
移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。
例子
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=0" />
content内容
字段名称 | 类型 | 描述 |
---|---|---|
width | number | device-width | 控制 viewport 的宽度 |
height | number | device-width | 控制 viewport 的宽度 |
initial-scale | device-width | 初始缩放比例,也即是当页面第一次 load 的时候缩放比例 |
maximum-scale | number | 允许用户缩放到的最大比例 |
minimum-scale | number | 允许用户缩放到的最小比例 |
user-scalable | yes | no | 用户是否可以手动缩放 |
user-scalable 用户可以手动缩放。
提示
如果不显示地设置viewport,那么width的默认为980。
如果页面的所有元素宽度都小于980,此时width为980,如果页面最宽的位置超过980,
那么width等于最大宽度。总之,默认能将整个页面从左到右显示出来。
如果设置了viewport,比如,只单纯地设置了user-scalable=no,
例如<meta name="viewport" content="user-scalable=no" />
,
那么ios下width还是按980显示(即默认就会通过dpi缩放),
但android和winphone下却不会再缩放了,浏览器分辨率和真实设置分辨率一致。