@
isKira @
Elethom 回去考虑了一番,觉得有必要再拖 viewport 出来吊打一番。
我的结论是:viewport 的 width 应该只用 device-width 一个值,initial-scale 也应该只用 1,这样才能保证页面 1:1 显示出来(如此一来,也不需要用户再缩放页面,指定 user-scalable=no 即可)。
比如在 Nexus5(360*640 *3) 中,如果页面用 640px 写成,那需要设置 initial-scale 为 360/640=0.5625,就是需要将页面缩小到 360px 宽才能够完全显示(填充)在屏幕中,但这个并非整数倍缩放,会导致页面显示不清晰(只要是在非高分辨率屏幕上缩小,都会带来这个问题)。
所以,固定宽的页面通过缩放适应不同分辨率的屏幕,这种方法不好。
不过淘宝手机端是用类似的方式做的
http://www.html-js.com/article/2402 在 iPhone 5 上的 meta 片段:initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no 这里的 0.5 是算出来的。不过这种手段只适合高分辨率屏幕,低分辨率下缩放的网页各种毛边,你可以用 Chrome 模拟一下 iPhone5 来看
m.taobao.com 的效果。
body 的 font-size 和 screen 的高度也是通过 JS 计算的。
拙见,如错请指正。