`

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

分享到:
评论

相关推荐

    详解Viewport 设计原理

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

    前端项目-viewport-units-buggyfill.zip

    视区单位详解: 1. vh(viewport height):表示视口的高度,1vh等于视口高度的1%。 2. vw(viewport width):表示视口的宽度,1vw等于视口宽度的1%。 3. vmin:取视口宽度和高度中的较小值作为单位长度。 4. vmax...

    前端开源库-postcss-px-to-viewport.zip

    **Postcss-px-to-viewport插件详解** Postcss-px-to-viewport是PostCSS的一个插件,它将CSS中的像素单位(px)自动转换为视口单位(viewport width - vw 和 viewport height - vh)。视口单位是一种相对单位,vw...

    WPF_Viewport3D-master_wpfviewPort3D_

    **WPF Viewport3D详解** 在Windows Presentation Foundation (WPF)中,ViewPort3D是用于构建3D图形和场景的主要控件。这个项目,"WPF_Viewport3D-master",旨在提供一个简单的实例,帮助开发者了解如何在WPF环境中...

    html5 viewport使用方法示例详解

    Viewport是浏览器为呈现网页在小屏幕上创建的一种虚拟视口,它决定了网页的宽度、高度以及缩放行为。对于不同分辨率和屏幕尺寸的手机,如Android、iPhone、iPod和WinPhone,适配性是一个挑战。通过合理地设置...

    Ext.Viewport布局

    ### Ext.Viewport布局详解 在前端开发领域,尤其是基于Ext JS框架进行应用设计时,`Ext.Viewport`布局是至关重要的概念。它提供了一个全面的、全屏的容器,用于组织和展示各种UI组件,如面板、表格、图表等。在给定...

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

    本文主要探讨两种常见的适配方法:rem适配和viewport适配。 **一、rem适配** `rem`(root em)是相对于根元素(通常是`&lt;html&gt;`)字体大小的单位。它的优势在于,通过动态调整根元素的`font-size`,我们可以让整个...

    viewport介绍1

    第三,meta viewport标签的属性详解 - `width`: 设置layout viewport的宽度,通常设为`device-width`以使宽度与设备屏幕宽度一致。 - `initial-scale`: 设置页面加载时的初始缩放比例。 - `minimum-scale`: 定义用户...

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

    jquery.viewport.js是一款基于jQuery的轻量级插件,通过它可以实现对页面中元素在视窗中出现、隐藏以及滚动等情况的检测。该插件通过向jQuery对象添加一组自定义的伪选择器(pseudo-selectors),使得开发者能够方便...

    HTML meta viewport属性详细说明

    【HTML Meta Viewport属性详解】 在移动设备的网页开发中,`&lt;meta name="viewport"&gt;`标签扮演着至关重要的角色,它允许开发者控制网页在移动设备浏览器中的展示方式。Viewport并非仅限于iOS设备,而是Android和...

    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; ...

    viewport-spy:Godot编辑器UI监视视口正在渲染的内容。 对调试有用

    **描述详解:** "视口间谍"是这个工具的别名,暗示了其核心功能是窥探和理解视口的工作机制。它通过在检查器(Inspector)面板上添加一些用户界面元素,使得开发者能够轻松检查当前选择的视口正在显示的图像信息。...

    详解VC++中的窗口与视口

    VC++中的窗口(Window)和视口(Viewport)是计算机绘图的基本概念,理解它们对于学习VC++和GDI函数非常重要。 窗口(Window) 窗口是基于逻辑坐标系的虚拟窗口,用于绘图和数据显示。在窗口中,坐标单位可以是...

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

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

    autocad图纸空间设置详解

    ### AutoCAD图纸空间设置详解 AutoCAD作为一款广泛应用于建筑、工程设计领域的计算机辅助设计软件,其强大的功能和灵活性使得用户能够高效地进行图形设计与编辑。其中,图纸空间(Layout)的设置对于最终出图的排版...

    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

Global site tag (gtag.js) - Google Analytics