viewport

来源:互联网 发布:android 解析json 编辑:程序博客网 时间:2024/04/30 17:11

视口(Viewport)就是我们看到的那个视窗,维护一个设备坐标系。

开发响应式页面需要了解viewport这个属性值,小分辨率设备上需要考虑。

<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no, minimal-ui"/>

width: 可视区域的宽度,值可为数字或关键词device-width;
minimum-scale=1.0:(最小缩放) 将页面缩小的程度,1.0则页面按实际尺寸显示,无任何缩放;
maximum-scale=1.0:(最大缩放) 将页面放大的程度,1.0将禁止用户放大到实际尺寸之上。
user-scalable: 是否可对页面进行缩放,no 禁止缩放。

<meta name="viewport"        content="            height = [pixel_value | device-height] ,            width = [pixel_value | device-width ] ,            initial-scale = float_value ,            minimum-scale = float_value ,            maximum-scale = float_value ,            user-scalable = [yes | no] ,            target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]"/> 

1、width :

控制 viewport 的大小,可以指定一个值或者特殊的值,如 device-width,设备的宽度(实际尺寸,单位为缩放为 100% 时的 CSS 的像素)。

2、height :

   和 width 类似,指定高度。

3、target-densitydpi

一个屏幕像素密度是由屏幕分辨率决定的,通常定义为 每英寸点的数量(dpi)。Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度。一个低像素密度的屏幕每英寸上的像素点更少,而一个高像素密度的屏幕每英寸上的像素点更多。Android Browser和WebView默认屏幕为中像素密度。

下面是 target-densitydpi 属性的 取值范围

  1. device-dpi,使用设备原本的 dpi 作为目标 dpi。 不会发生缩放。

  2. high-dpi, 使用hdpi 作为目标 dpi。 中等像素密度和低像素密度设备相应缩小。

  3. medium-dpi,使用mdpi作为目标 dpi。 高像素密度设备相应放大,像素密度设备相应缩小。这是默认的target density.

  4. low-dpi,使用ldpi作为目标dpi。中等像素密度和高像素密度设备相应放大。

  5. value,指定一个具体的dpi 值作为target dpi. 这个值的范围必须在70–400之间。

<!-- html document --><meta name="viewport" content="target-densitydpi=device-dpi" /><meta name="viewport" content="target-densitydpi=high-dpi" /><meta name="viewport" content="target-densitydpi=medium-dpi" /><meta name="viewport" content="target-densitydpi=low-dpi" /><meta name="viewport" content="target-densitydpi=200" />

为了防止Android Browser和WebView 根据不同屏幕的像素密度对你的页面进行缩放,你可以将viewport的 target-densitydpi 设置为 device-dpi,页面将不会缩放,页面会根据当前屏幕的像素密度进行展示,同时,还需要将viewport的width定义为与 设备的width匹配,这样页面就可以和屏幕相适应。

4、initial-scale

初始缩放。即页面初始缩放程度。这是一个浮点值,是页面大小的一个乘数。例如,如果你设置初始缩放为“1.0”,那么,web页面在展现的时候就会以target density分辨率的1:1来展现。如果你设置为“2.0”,那么这个页面就会放大为2倍。

5、minimum-scale

最小缩放。即允许的最小缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。例如,如果你将这个值设置为“2.0”,那么这个页面与target size相比,最多能缩小1/2倍。

6、maximum-scale

最大缩放。即允许的最大缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。例如,如果你将这个值设置为“2.0”,那么这个页面与target size相比,最多能放大2倍。

7、user-scalable

用户调整缩放。即用户是否能改变页面缩放程度。如果设置为 yes 则是允许用户对其进行改变,反之为 no。默认值是yes。如果你将其设置为no,那么minimum-scale 和 maximum-scale都将被忽略,因为根本不可能缩放。

所有的缩放值都必须在0.01–10的范围之内。

e.g. 设置屏幕宽度为设备宽度,禁止用户手动调整缩放

<meta name="viewport" content="width=device-width,user-scalable=no" />

e.g. 设置屏幕密度为高频,中频,低频自动缩放,禁止用户手动调整缩放)

<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"/>
0 0
原创粉丝点击