要不是最近接触了手机网页的编写,还真不知道原来这小小的<meta>标签有如此大的作用。

事情是这样子,当时写手机页面的时候,以为就是在电脑里写完,直接丢去手机里看就是了。没想到一放到手机去看,整个页面等比例压缩了,原本在PC上一行16px的字在手机上小到肉眼都快看不清。

查了资料才知道,原来,我漏写了一个关键的标签,那就是这次要说的:<meta name="viewport">

 

一、什么是viewport?

  手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。

  移动版的Safari浏览器最先引进了viewport这个meta标签,让网页开发者来控制viewport的大小和缩放,其他手机浏览器也基本支持。

 

二、viewport基础知识

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

  <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">

  对于content里的属性解释如下:

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

  height:和 width 相对应,指定高度

  initial-scale:初始缩放比例,也即是当页面第一次 load 时的缩放比例

  maximum-scale:允许用户缩放到的最大比例

  minimum-scale:允许用户缩放到的最小比例

  user-scalable:用户是否可以手动缩放

 

三、viewport的作用

  viewport并非只是ios上的独有属性,在android、winphone上同样也有viewport。它们要解决的问题是相同的,即无视设备的真实分辨率,直接通过dpi,在物理尺寸和浏览器之间重设分辨率,这个分辨率和设备的分辨率无关。

  比如,你拿个3.5寸 640 * 960的iphone4,4.0寸 1280 * 720的小米2,9.7寸 1024*768的ipad,虽然设备的分辨率不同,物理尺寸也不同,但你可以通过设置viewport让它们在浏览器里有相同的分辨率。比如说,你的网站是800px宽,你可以通过设置viewport的width=800,来让你的网站在这三个不同的设备上都刚好满屏显示你的网站。

 

四、参考资料

  这个是meta标签的资料,比较详尽,但偏偏就没有写viewport。

  http://www.dreamdu.com/xhtml/tag_meta/

  这个是专门讲viewport的,重点讲了viewport在ios和android上的差异

  http://java-mans.iteye.com/blog/1639503

posted on 2013-05-06 10:23  KwanChiLeung  阅读(1322)  评论(1编辑  收藏  举报