主要说一些viewport的基本原理以及使用浏览器
㈠概念iphone
手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,一般这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每一个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户能够经过平移和缩放来看网页的不一样部分。移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其余手机浏览器也基本支持。ide
移动端浏览器一般都在一个比屏幕更宽的虚拟窗口中渲染页面,这个虚拟窗口就是viewport,目的是正常展现没有作移动端适配的网页,可让他们完整的展示给用户。咱们有时用移动设备访问桌面版网页就会看到一个横向滚动条,这里可显示区域的宽度就是viewport的宽度。布局
㈡利用meta标签对viewport进行控制优化
咱们常常会见到这样一行代码:idea
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">spa
该meta标签的做用是让当前viewport的宽度等于设备的宽度,同时不容许用户手动缩放。scala
如下为viewport的几个属性,这些属性能够混合来使用,多个属性同时使用要用逗号隔开3d
㈢width和initial-scalecode
当设置了width
和initial-scale
时,浏览器会自动选择数值最大的进行适配。
如设置:
<meta name="viewport" content="width=400, initial-scale=1">
浏览器会选择数值大的进行适配,若是当前窗口ideal viewport宽度为300,initial-scale
值为1,取得是width为400的值;若是当前窗口的ideal viewport为480,则取480。
事实上,width=device-width
和initial-scale=1
都表明应用ideal viewport
,但在ipad、iphone等移动设备和IE上,横竖屏不分,默认都取竖屏的宽度,兼容性最好的写法就是<meta name="viewport" content="width=device-width, initial-scale=1">
总结:在iphone和ipad上,不管你给viewport设的宽的是多少,若是没有指定默认的缩放值,则iphone和ipad会自动计算这个缩放值,以达到当前页面不会出现横向滚动条(或者说viewport的宽度就是屏幕的宽度)的目的。
但愿有所帮助。