`

Viewport详解

 
阅读更多

什么是Viewport

手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。

 

Viewport 基础

一个常用的针对移动网页优化过的页面的 viewport meta 标签大致如下:

<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>

width:控制 viewport 的大小,可以指定的一个值,如果 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
height:和 width 相对应,指定高度。
initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
maximum-scale:允许用户缩放到的最大比例。
minimum-scale:允许用户缩放到的最小比例。
user-scalable:用户是否可以手动缩放

 

 

html5开发移动应用时往往会遇到手机的分辨率或屏幕大小不同的问题,如何使我们开发出来的应用或页面大小能适合各种手机呢?html5中的viewport能帮你做到。

viewport 语法介绍:

<!– html document –>
<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]

/>

参数解释:

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之间。

<!– 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匹配,这样你的页面就可以和屏幕相适应。

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的范围之内。

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

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

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

<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”/>

分享到:
评论

相关推荐

    移动前端,h5 ,viewport 详解

    h5 中viewport的详解,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备。

    详解Viewport 设计原理

    viewport设计原理非常详细的讲解,前端设计非常重要的概念

    html5 viewport使用方法示例详解

    随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择。然而,每一款手机有不同的分辨率,不同屏幕大小,如何使我们...学习html5 viewport

    详解jquery插件jquery.viewport.js学习使用方法

    本篇文章主要介绍了详解jquery插件jquery.viewport.js学习使用方法,具有一定的参考价值,有兴趣的可以了解一下

    详解如何使用rem或viewport进行移动端适配

    在开发移动端界面时,移动端适配一直是一个比较头疼的事情,常见的移动端适配有viewport适配,rem适配,百分比适配等等,在这里我们只介绍viewport适配和rem适配。看完这篇文章相信你应该会实战操作移动端对于不同...

    关于meta viewport中target-densitydpi属性详解(推荐)

    前段时间在做WAP页面,发现页面设置了meta viewport中的大众属性,即: &lt;meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" &gt;  但发现页面依旧不根据手机屏幕进行...

    jQuery实现轮播图及其原理详解

    meta charset="utf-8" name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"&gt; &lt;title&gt;JQuery轮播图&lt;/title&gt; &lt;style&gt; ...

    像素密度与CSS3的viewport在移动端Web响应式布局中的运用

    viewport是CSS3中调整缩放的利器,特别适用于移动端Web界面的操作与布局,接下来我们就来详解像素密度与CSS3的viewport在移动端web响应式布局中的运用.

    【JavaScript源代码】详解jQuery的拷贝对象.docx

    详解jQuery的拷贝对象  &lt;!DOCTYPE html&gt;  &lt;html lang="en"&gt;  &lt;head&gt;   &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; ...

    【JavaScript源代码】如何使用原生Js实现随机点名详解.docx

    如何使用原生Js实现随机点名详解  最近学了一点前端内容,老师让用js设计一个班里的随机点名器。就尝试写了一个,具体实现效果如图: &lt;!DOCTYPE html&gt;  &lt;html lang="en"&gt;   &lt;head&gt; &lt;meta charset="UTF-8"&gt; ...

    【JavaScript源代码】Ajax 文件上传进度监听之upload.onprogress案例详解.docx

    Ajax 文件上传进度监听之upload.onprogress案例详解  $.ajax实现 &lt;!DOCTYPE html&gt;  &lt;html lang="en"&gt;   &lt;head&gt; &lt;meta charset="UTF-8" /&gt; &lt;meta name="viewport" content="width=device-width, initial-...

    详解性能更优越的小程序图片懒加载方式

    传统H5的懒加载方式都是通过监听页面的scroll事件来实现的,结合viewport的高度来判断。 小程序也类似,通过监听页面onPageScroll事件获取当前滚动的数据,结合getSystemInfo获取设备信息来判断。由于scroll事件...

    自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结

    主要介绍了移动客户端手机页面布局时各标签元素作用和适用情景,通过详解几种属性让读者更明确自适应布局的注意点,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。

    vue移动端的左右滑动事件详解

    本文实例为大家分享了vue移动端左右滑动事件,供大家参考,具体内容...meta name=viewport content=width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no&gt; &lt;meta content=telephone=no name

    一个sphere texture mapping实例(附sphere mapping详解pdf)

    一个原创的sphere texture mapping实例(附sphere mapping详解pdf) 一个原创的 OpenGL 键盘控制模型 rotation实例 键盘操作: 按空格键可切换兔子模型的自转轴:x-》y,y-》x (source包含loadpng.c(贴图loading)...

    详解CSS中视窗单位和百分比单位的使用

    视窗(Viewport)单位 视窗(Viewport)单位是相对单位,意味着它们没有客观的尺寸。它们的大小是由视窗(Viewport)大小决定的。下面是四个与视窗(Viewport)有关的单位。 我将集中讨论前两个单位,因为它们更可能被使用。...

    详解swipe使用及竖屏页面滚动方法

    Swiper常用于移动端网站的内容触摸滑动 Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端。...meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maxim

    Bootstrap布局方式详解

    Bootstrap 3 是移动设备优先的,...响应式网格系统随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。如下图: 二、Bootstrap 网格系统(Grid System)的工作原理 网格系统通过一系列包含内容的行和列来

Global site tag (gtag.js) - Google Analytics