天魔窟

勇往直前

Avatar

Stop iPhone/Android browser from zooming pages automatically

针对 iPhone 和 Android 的浏览器(Mobile Safari/WebKit)设计的网页,本身应该在内容布局和外观上都专门做了优化,比如合适的内容块位置以及字号。我们会希望页面能按照原样呈现,而不会被浏览器自动缩放。

To do this,需要在页面 head 区域内增加如下的 meta 标签:

<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0, target-densitydpi=device-dpi" />


其中的 target-densitydpi 属性是 Android 浏览器所需要的,因为 Android 硬件设备标准不一,其中同样物理尺寸的屏幕,可能因为 dpi 的不同而具有不同的分辨率,Android 浏览器默认会缩放页面以便最好地呈现,可惜和 Java 的垃圾回收一样,它很难做到“最好”。所以还是人工指定吧。

除了页面的 meta 标签,还需要在 CSS 文件里加上:

html {
	-webkit-text-size-adjust: none;
}


这样当旋转手机,浏览器自动转为宽屏模式时,页面字体也不会被自动放大。

以上设定参见 Apple 的 Safari 开发者手册以及 Android 的 WebView 文档。是以总结之。