iPhone/android的viewport 解决网页自动缩放的问题
2013-06-27 11:08
399 查看
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi" />
viewport有如下几个属性:
width设置viewport的宽度,即iphone最初模拟PC浏览器的宽度,之后iphone会这个宽度展现的页面同比缩放到iphone屏幕上。设置width=device-width后就不会再进行缩放了,因为宽度正好和iphone的宽度相同(前提是没有设置缩放比例)。
minimum-scale和maximum-scale 是控制用户允许设置的缩放比例的。
user-scalable 标识是否允许对页面进行缩放,取值有两个yes和no。设置为no则不允许进行页面缩放了。
initial-scale 设置用户最初看到页面时的缩放比例。
target-densitydpi Android 浏览器所需要的,因为 Android 硬件设备标准不一, 其中同样物理尺寸的屏幕,可能因为 dpi 的不同而具有不同的分辨率,
Android 浏览器默认会缩放页面以便最好地呈现, 可惜和 Java 的垃圾回收一样,它很难做到"最好"。所以最好还是人工指定吧。
target-densitydpi 可以设定的值
device-dpi - Use the device's native dpi as the target dpi. Default scaling never occurs. 设备本身的像素
high-dpi - Use hdpi as the target dpi. Medium and low density screens scale down as appropriate 用高像素,中低像素屏幕适当缩小。
medium-dpi - Use mdpi as the target dpi. High density screens scale up and low density screens scale down. 中等像素,高的屏幕放大,低的变小是默认值
low-dpi - Use ldpi as the target dpi. Medium and high density screens scale up as appropriate 低像素,中高像素会适当变大。
实例:
网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放。
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
width - viewport 的宽度 height - viewport的高度
initial-scale - 初始的缩放比例
minimum-scale - 允许用户缩放到的最小比例
maximum-scale - 允许用户缩放到的最大比例
user-scalable - 用户是否可以手动缩放
=============================
user-scalable:用户是否可以手动缩放
随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择。然而,每一款手机有不同的分辨率,不同屏幕大小,如何使我们开发出来的应用或页面大小能适合各种高端手机使用呢?学习html5
viewport的使用能帮你做到这一点……
viewport 语法介绍:
01 <!-- html document -->
02 <meta name="viewport"
03 content="
04 height = [pixel_value | device-height] ,
05 width = [pixel_value | device-width ] ,
06 initial-scale = float_value ,
07 minimum-scale = float_value ,
08 maximum-scale = float_value ,
09 user-scalable = [yes | no] ,
10 target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]
11 "
12 />
width
控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
height
和 width 相对应,指定高度。
target-densitydpi
一个屏幕像素密度是由屏幕分辨率决定的,通常定义为每英寸点的数量(dpi)。Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度。一个低像素密度的屏幕每英寸上的像素点更少,而一个高像素密度的屏幕每英寸上的像素点更多。Android
Browser和WebView默认屏幕为中像素密度。
下面是 target-densitydpi 属性的 取值范围
device-dpi –使用设备原本的 dpi 作为目标 dp。 不会发生默认缩放。
high-dpi – 使用hdpi 作为目标 dpi。 中等像素密度和低像素密度设备相应缩小。
medium-dpi – 使用mdpi作为目标 dpi。 高像素密度设备相应放大, 像素密度设备相应缩小。 这是默认的target density.
low-dpi -使用mdpi作为目标 dpi。中等像素密度和高像素密度设备相应放大。
<value> – 指定一个具体的dpi 值作为target dpi. 这个值的范围必须在70–400之间。
1 <!-- html document -->
2 <meta name="viewport" content="target-densitydpi=device-dpi" />
3 <meta name="viewport" content="target-densitydpi=high-dpi" />
4 <meta name="viewport" content="target-densitydpi=medium-dpi" />
5 <meta name="viewport" content="target-densitydpi=low-dpi" />
6 <meta name="viewport" content="target-densitydpi=200" />
为了防止Android Browser和WebView 根据不同屏幕的像素密度对你的页面进行缩放,你可以将viewport的target-densitydpi 设置为 device-dpi。当你这么做了,页面将不会缩放。相反,页面会根据当前屏幕的像素密度进行展示。在这种情形下,你还需要将viewport的width定义为与设备的width匹配,这样你的页面就可以和屏幕相适应。
initial-scale
初始缩放。即页面初始缩放程度。这是一个浮点值,是页面大小的一个乘数。例如,如果你设置初始缩放为“1.0”,那么,web页面在展现的时候就会以target density分辨率的1:1来展现。如果你设置为“2.0”,那么这个页面就会放大为2倍。
maximum-scale
最大缩放。即允许的最大缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。例如,如果你将这个值设置为“2.0”,那么这个页面与target size相比,最多能放大2倍。
user-scalable
用户调整缩放。即用户是否能改变页面缩放程度。如果设置为yes则是允许用户对其进行改变,反之为no。默认值是yes。如果你将其设置为no,那么minimum-scale 和 maximum-scale都将被忽略,因为根本不可能缩放。
所有的缩放值都必须在0.01–10的范围之内。
例:
(设置屏幕宽度为设备宽度,禁止用户手动调整缩放)
<meta name="viewport" content="width=device-width,user-scalable=no" />
(设置屏幕密度为高频,中频,低频自动缩放,禁止用户手动调整缩放)
<meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0,
maximum-scale=1.0, user-scalable=no"/>
相关文章推荐
- iPhone/android的viewport 解决网页自动缩放的问题
- android的viewport 解决网页自动缩放的问题
- Android--开源,安卓自动缩放布局,解决屏幕适配问题
- Android手机上浏览网页不可缩放,适应屏幕。iPhone手机显示网页,字体等变小了,解决方法
- iPhone/android的viewport 禁止页面自动缩放
- iPhone/android的viewport 禁止页面自动缩放
- 网页随鼠标滚动自动加载 之 网页缩放后失效问题解决方法
- iPhone/android的viewport 禁止页面自动缩放
- android支付宝客户端html5网页无法自动关闭问题的解决方法
- 移动版网页自动缩放问题
- 解决html5 audio iphone,ipd,safari不能自动播放问题
- [置顶] Android调用js方法传递参数自动计算问题的解决
- android ViewPager 解决自动滑动到最后一页,继续滑动的效果问题
- android textview自动换行、排列错乱问题及解决
- android 图片缩放后划屏拖动图片与Viewpager切换Item冲突(拖动图片的事件相应被屏蔽)问题解决
- Android Webview中解决H5的音视频不能自动播放、只有声音没有图像的问题
- 解决支付宝WEB支付界面模块在Android上自动滑动到登录模块的问题
- 解决AndroidADT自带Eclipse编辑器不能自动代码提示的问题。
- 解决因手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题
- 我的Android进阶之旅------>android Button上面的英文字符串自动大写的问题解决