《HTML5触摸界面设计与开发》——2.4 理解 Viewport

简介:

本节书摘来自异步社区《HTML5触摸界面设计与开发》一书中的第2章,第2.4节,作者: 【美】Stephen Woods 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 理解 Viewport

在iPhone诞生之前,手机浏览器尝试通过调整内容来适应网页,取得了不同程度的成功。iPhone上的Safari没有做丝毫的尝试,取而代之的是在各种各样的虚拟窗口上展现网页,这些虚拟窗口被称为“视图”。用户可以通过放大来查看网页的部分内容或通过缩小来查看网页的全部内容。

为了给开发者提供一定程度的展现页面的控制权,苹果公司提供了viewport的元信息(meta)元素,它可以指定虚拟窗口大小。它改变了网站建设的很多方面。理解viewport是成功建设移动网站的第一步。

虚拟像素
作为网站开发者,我们喜欢像素。在网页上进行布局,最精确和最简单的方式就是使用像素。像素是屏幕上最小的单元,一旦指定了像素值就能确切地知道它的大小。如果你拿出显微镜,可以在屏幕上一个一个地数出这些像素点。

在移动设备的屏幕上看到的像素与桌面设备上不同。这意味着,在iPhone上,无法拿出显微镜来验证一个元素是否是300px宽。在一个没有viewport 元信息的页面上,视图会默认设定宽度为980px,则宽度为300px的元素表示的宽度为300虚拟像素宽(图2.3)。


<a href=https://yqfile.alicdn.com/2c652d5c5f6c989b2114c23250e8511abdf26ca2.png" >

举个例子,如果声明

<meta name="viewport" content="width=600">

那么一个在CSS中被定义宽度为600px的元素在页面加载初始化时将会横向充满屏幕(图2.4)直到用户通过双击放大时才变得更大。


781c74e2095bf4a30e410ea1a62933b37fd0f1e2

px与em

虽然在CSS2和CSS3的规范中定义了许多单位,但是大多数开发人员限制自己只使用两个:em和px。1个单位的em总是代表当前的字体大小。如果字体大小是12px,那么1em就等于12px。1个单位的px(历史上)是屏幕上的一个像素。2005年左右,使用em变得非常流行,因为当时流行的浏览器有了改变字体大小的能力。因为单位em的定义是基于字体大小的,所以可以很容易地进行布局,以适应用户选定的字体大小。

自IE7开始,浏览器的默认缩放为全页面缩放,而不是只改变字体大小。 由于简单,px现在已是设计师们最流行的选择。px更容易沟通,更容易理解。像em和其他未被充分利用的单位也有相应的用途,它们主要用于排版,而不是布局,px才是用来对网页进行布局的最简单的单位。
viewport就是一个虚拟的窗口,viewport的边缘代替浏览器的边缘,成为了窗口的边缘。 viewport的宽度和高度除了可以用像素值,还可以接受两个关键字:设备宽度和设备高度,这显然是根据设备屏幕的像素(图2.5)返回实际的尺寸。


<a href=https://yqfile.alicdn.com/6648c02db46637e64e6a16ed9189589c08954acb.png" >


<a href=https://yqfile.alicdn.com/f6c7f38b574c044a4d5baf509f7363a974895809.png" >

加州鸟类网站的viewport宽度会被设置为与设备的宽度相同,从设计的角度,这样看起来方便。此外,当我们要确保CSS适应不同的设备时,也会有很大帮助。从iPhone 1到4S(假设在垂直方向),device-width的值都是320px。

高密度显示屏
从iPhone和viewport 标签出现之后,每一代移动设备的分辨率都在增加。现在像素太高,实际像素小到即使用显微镜都难以分辨。如果规范没有改变,当网页的viewport宽度设置为设备宽度时,出现非常微小的用户界面。在iPhone 4中,即第一个有着高密度显示屏的设备上,这些元素相对它们在老版本的iPhone上只有一半大小。

此外,苹果公司是第一个将高密度显示屏设备推向市场的制造商。为了让Web开发者的思维保持清晰,苹果公司决定继续在iPhone 4上返回320的设备宽度,尽管屏幕物理像素为640。 安卓设备也如法炮制。这些设备更复杂,因为在如何显示上,它们给了用户更多的控制权。(安卓上的Chrome有一个不是很有用的target-density dpi的viewport属性来支持它,你可以查看安卓开发者文档来获取更多的相关信息)。所有的设备都将返回一个设备开发者认为是布局界面元素的理想尺寸的值作为device-width。值有很大不同,所以当我们为一个viewport宽度为设备宽度的Web页面的布局时,我们需要确保布局方式可以处理一些伸缩问题,就像一个传统桌面网站的流式布局一样。

这对加州鸟类网站意味着什么呢?因为设计师为我们提供了优美且充满整个视窗的移动布局,我们可以这样设置device-width:

<meta name="viewport" content="width=device-width">

在大多数情况下,这样设置是最好的,因为它允许界面完全适应用户的设备,我们就不必担心网页的宽度会超过设备的宽度。

相关文章
|
1月前
|
开发框架 前端开发 JavaScript
前端框架演进史:从HTML到现代化开发
前端框架演进史:从HTML到现代化开发
35 0
|
11天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
4月前
|
开发工具 CDN 容器
基于Html+腾讯云播SDK开发的m3u8播放器
周末业余时间在家无事,学习了一下腾讯的云播放sdk,并制作了一个小demo(m3u8播放器),该在线工具是基于腾讯的云播sdk开发的,云播sdk非常牛,可以支持多种播放格式。
101 1
|
3月前
|
前端开发 JavaScript
html+css+js开发一个猜数字游戏
【1月更文挑战第5天】html+css+js开发一个猜数字游戏
35 1
|
3月前
|
前端开发 Linux 编译器
web开发:HTML详解
web开发:HTML详解
46 0
|
4月前
|
JavaScript 前端开发
基于html+javascript开发的base64解码工具
base64在线解码工具可以帮助你将Base64编码的字符串解码为原始的文本或数据。
29 0
|
9月前
|
前端开发 JavaScript API
wangEditor富文本编辑器的调用开发实录(v5版本、获取HTML内容、上传图片、隐藏上传视频)
wangEditor富文本编辑器的调用开发实录(v5版本、获取HTML内容、上传图片、隐藏上传视频)
476 0
|
5月前
|
移动开发 资源调度 JavaScript
html2canvas 一个强大的使用js开发的浏览器网页截图工具
html2canvas 一个强大的使用js开发的浏览器网页截图工具
41 0
|
5月前
|
Web App开发 设计模式 JavaScript
基于html+jquery开发的科学计算器(课程作业)
基于html和jquery开发的科学计算器,该科学计算器可进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。 科学型带有所有普通的函数,所有的函数都分布在键盘上以致于你可以不用通过菜单列表来使用它们。
26 0
|
6月前
|
XML JSON JavaScript
基于jquery+html开发的json格式校验工具
JSON是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。
36 0