`

viewport不权威指南

 
阅读更多

viewport 不权威指南

什么是viewport ,为什么需要viewport
viewport :视口,视觉窗口,显示区域。
在显示面积上手机屏幕相对桌面显示器要小很多,在几年前(现在也如此)大部分网站都是为桌面显示器浏览而设计,很少考虑到适应手机屏幕,所以如果用手机浏 览大多网站时会出现问题,比如常见固定宽度的网页会出现横向竖向滑动条,当然这不算什么大问题;但如果是浏览流动布局的网页那情况会非常糟糕,设想一个宽 度为30%的侧边栏对于320px手机屏幕而言也就96px,只能容纳8个12px的汉字,可阅读性非常差。

为了让手机也能获得良好的网页浏览体验,Apple找到了一个办法:在移动版(iOS)的Safari中定义了viewport meta 标签①,它的作用就是创建一个虚拟的窗口(viewport ),而且这个虚拟窗口的分辨率接近于桌面显示器,Apple将其定位为980px②。

以一代iphone下的Safari来说就是:
在iphone的320px物理屏幕上——视觉窗口(visual viewport ),创建出了一个980px的虚拟窗口——布局窗口(layout viewport ),在视觉窗口(visual viewport )中我们可以拖动横向竖向滑动条或者放大缩小网页,来达到最佳的浏览效果(类似桌面浏览器);而布局窗口(layout viewport )用来配合CSS渲染布局,例如当我们设置一个容器的宽度为100%时,这个容器的实际值为980px而不是320px。如此一来大部分网页就能以缩放的形式正常的显示在手机屏幕上了。

如何设置viewport
有了layout viewport 似乎解决手机浏览网页的难题,但如果遇到专门为手机优化的网页就又有新的问题:

是的,因为iphone的layout viewport 默认为980px,导致专为其优化的320px宽的页面只能以缩放的方式显示,这时就需要对viewport 进行设置:

<head>

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

</head>

这个是最常见的一条viewport meta 代码,将viewport 定义为:宽度为设备宽度,初始缩放比例为1倍,禁止用户缩放。设置好后我们的页面就显示完美了:

viewport 全部属性&值如下:

width: viewport 宽度
height: viewport 高度
initial-scale: 初始缩放比例
maximum-scale: 最大缩放比例
minimum-scale: 最小缩放比例
user-scalable: 是否允许用户缩放

例:

width=960 或 device-width
height=1000 或 device-height
initial-scale=0.5
maximum-scale=2
minimum-scale=1
user-scalable=1 或 0 (yes 或 no)

layout viewport 的默认值
在Apple实现viewport 后,其他浏览器也加入了对viewport meta 的支持,但彼此间还是有些差异,差异最大的是layout viewport 的表现:

Safari iPhone: 980px
Opera: 850px
Android WebKit: 800px
IE: 974px

最后关注下width=device-width
其实这个属性&值很有意思,字面意应该是viewport 宽度等于设备宽度,但在实际中不同的浏览器都给出了个定值:320px;这个值还是源于Apple,因为早期iphone的分辨率为320px × 480px,大量为iphone量身定制的网站都设置了viewport :width=device-width,并且按照宽度320px来设计制作,所以其他浏览器加入viewport 支持时为了兼容性也将device-width定义为了320px。

注解
① 除此之外不同移动浏览器厂商也有不同的解决方案,例如UCweb就是使用中间件技术。
②不同的浏览器厂商对于layout viewport 的大小定义不同,详见”layout viewport 的默认值”。

参考文章:
http://dev.w3.org/csswg/css-device-adapt/
http://www.quirksmode.org/mobile/viewports2.html
https://developer.mozilla.org/en/Mobile/Viewport _meta _tag
http://blogs.msdn.com/b/iemobile/archive/2010/11/22/the-ie-mobile-viewport -on-windows-phone-7.aspx

分享到:
评论

相关推荐

    Extjs4.0权威指南-中文

    ### Extjs4.0 权威指南 - 中文版知识点详解 #### 一、Extjs4.0 简介 Extjs 是一款基于 JavaScript 的前端框架,它提供了丰富的 UI 组件库,使得开发者能够快速地构建出高性能的 Web 应用程序。Extjs4.0 是该系列中...

    jQuery Mobile权威指南.pdf )

    &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt; &lt;title&gt;jQuery Mobile示例 &lt;script src="http://code.jquery.com/jquery-1.11.1.min.js"&gt;&lt;/script&gt; ...

    Ext Js权威指南(.zip.001

    Ex4.0共2个压缩包特性,《ext js权威指南》 前 言 第1章 ext js 4开发入门 / 1 1.1 学习ext js必需的基础知识 / 1 1.2 json概述 / 3 1.2.1 认识json / 3 1.2.2 json的结构 / 3 1.2.3 json的例子 / 4 1.2.4 ...

    Extjs4 学习指南

    ExtJS 是一个强大的JavaScript库,主要用于构建富客户端的Web应用程序。...记得始终以官方API文档为最终权威,因为本文中提到的部分内容可能源自网络整理,可能存在不准确之处。祝你在ExtJS的学习之旅中取得成功!

    OpenGL超级宝典(2)

    OpenGL超级宝典是学习计算机图形学和OpenGL编程的权威指南,尤其适合初学者。这个压缩包包含了一系列章节的代码示例,主要针对Windows操作系统。如果你对其他系统(如Linux或macOS)的代码有兴趣,可以进一步联系...

    html css js网页设计

    - 《JavaScript 权威指南》:深入理解 JavaScript 的经典书籍。 #### 六、总结 通过掌握 HTML、CSS 和 JavaScript 这三项核心技术,可以创建美观且功能丰富的网页。在学习过程中,多做练习,尝试不同的项目,以...

    text_emarketing-the-essential-guide-to-online-marketing:电子营销

    《电子营销:在线营销的基本指南》是一本深入探讨网络营销策略和实践的资源,涵盖了从网站设计到社交媒体营销的广泛主题。HTML作为互联网的基础语言,是理解电子营销的关键元素之一。以下将详细介绍HTML在电子营销中...

    jQuery Mobile 快速入门

    - **官方文档:** jQuery Mobile 的官方文档是最权威的学习资源,包含了详细的 API 文档和示例代码。 - **社区论坛:** 访问 jQuery Mobile 的社区论坛 (https://forum.jquery.com/forum/jquery-mobile),可以找到许多...

    Healthy-diet

    在`&lt;head&gt;`中,我们可以创建一个`&lt;title&gt;`元素,为网页设置一个合适的标题,比如"健康饮食指南"。这不仅对用户友好,也有利于搜索引擎优化(SEO)。此外,我们还可以添加`&lt;meta&gt;`标签来描述页面内容,例如`提供科学...

    molecular-guide

    【分子指南——HTML基础知识详解】 在“molecular-guide”这个项目中,我们主要探讨的是HTML(HyperText Markup Language)的基础知识。HTML是构建网页内容的核心语言,它通过一系列的标签来描述网页的结构和内容。...

Global site tag (gtag.js) - Google Analytics