最近做了一個網站,發現在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之間。