最近做了一个网站,发现在Android平板浏览器下访问,分辨率并不是设备自己的像素。我用的是华为荣耀平板,设备实际的分辨率是1280x800,但是我用js测算出来的document.body.clientWidth只有980px。
说明Android下浏览器默认的并不是实际像素,而是中像素密度。(注:Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度)
为了防止Android Browser和WebView根据不同屏幕的像素密度对你的页面进行缩放,就要在网页里加上一段代码,控制网页展示的分辨率。
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, target-densitydpi=device-dpi' name='viewport'>
这里面,target-densitydpi的功能就是指定屏幕像素密度DPI。它的参数有:
- device-dpi –使用设备原本的 dpi 作为目标dpi。不会发生默认缩放。
- high-dpi – 使用hdpi作为目标dpi。中等像素密度和低像素密度设备相应缩小。
- medium-dpi – 使用mdpi作为目标dpi。 高像素密度设备相应放大, 像素密度设备相应缩小。这是默认的target density。
- low-dpi -使用mdpi作为目标dpi。中等像素密度和高像素密度设备相应放大。
- <value> – 指定一个具体的dpi值作为target dpi。这个值的范围必须在70–400之间。