由于 Android 适用于各种屏幕尺寸和像素密度的设备,
请在网页设计中考虑这些因素,以使网页大小合适。
WebView
支持 DOM、CSS 和元标记
功能来帮助您正确呈现 Web 内容。
在针对采用 Android 的设备定位您的网页时,需要考虑两个主要因素 用于:
- 视口
- 视口是为网页提供可绘制区域的矩形区域。您 可以指定多个视口属性,如尺寸和初始缩放比例。最重要的是 视口宽度,用于定义网页上可用水平像素的总数 视角—可用 CSS 像素的数量。
- 屏幕密度
WebView
类和 Android 设备上的大多数网络浏览器都会转换 CSS 像素值 非密度制约像素值,这样网页可感知的尺寸与 中密度屏幕 - 约 160 dpi。不过,如果图形是网站的重要元素 网页设计时,请注意不同密度的缩放比例。例如,一幅图像 宽度为 300 像素且在 320 dpi 屏幕上放大的像素 - 它会对每个 CSS 使用更多的物理像素 Pixel。这可能会造成模糊和像素化等伪影。为简单起见,Android 会 将大多数较小屏幕密度分为几个常规类别:小、中和大。学习内容 详细了解屏幕密度,请参阅 支持不同的像素密度。
请参阅以下相关资源:
指定视口属性
视口是您绘制网页的区域。虽然该视口的 区域大小与屏幕尺寸相符,视口有自己的像素 向网页提供的各种尺寸例如,虽然设备屏幕可能有 实际宽度为 480 像素,视口宽度可以为 800 像素。这样,网页 当视口比例为 1.0 时,宽度为 800 像素的屏幕会完全显示。
大多数人 Android 设备上的网络浏览器(包括 Chrome)默认会将视口设为较大尺寸。 此 _宽视口模式_ 的宽度大约为 980 像素。许多浏览器还会缩小 以显示整个视口宽度,称为 _概览模式_。
<ph type="x-smartling-placeholder">您可以为网页定义视口的属性,例如宽度和初始缩放比例
在文档中使用 <meta name="viewport" ...>
标记
<head>
。
以下语法显示了所有支持的视口属性和值的类型 分别接受:
<meta name="viewport" content=" height = [pixel_value | "device-height"] , width = [pixel_value | "device-width"] , initial-scale = float_value , minimum-scale = float_value , maximum-scale = float_value , user-scalable = ["yes" | "no"] " />
例如,以下 <meta>
标记指定视口宽度匹配
设备屏幕的宽度,以及缩放功能已停用:
<head> <title>Example</title> <meta name="viewport" content="width=device-width, user-scalable=no" /> </head>
在针对移动设备优化网站时,您通常需要将宽度设置为
"device-width"
以使尺寸完全适合所有设备,然后使用 CSS 媒体查询
灵活地调整布局,以适应不同的屏幕尺寸。
使用 CSS 确定目标设备密度
WebView
支持 -webkit-device-pixel-ratio
,这是一种 CSS 媒体
功能,可让您针对特定屏幕密度创建样式。您为此项设置的值
必须为 0.75、1 或 1.5,以指明样式适用于具有低、中或低
分别是高密度屏幕
您可以为每个密度创建单独的样式表:
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" /> <link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" />
或者,在一个样式表中指定不同的样式:
#header { background:url(medium-density-image.png); } @media screen and (-webkit-device-pixel-ratio: 1.5) { /* CSS for high-density screens */ #header { background:url(high-density-image.png); } } @media screen and (-webkit-device-pixel-ratio: 0.75) { /* CSS for low-density screens */ #header { background:url(low-density-image.png); } }
如需详细了解如何处理不同屏幕密度(尤其是图片),请参阅 高 DPI 图片 可变像素密度。
使用 JavaScript 实现设备密度目标
WebView
支持 window.devicePixelRatio
,这是一个 DOM 属性,
可让您查询当前设备的密度。此属性的值指定缩放比例
当前设备使用的系数。如果 window.devicePixelRatio
的值为 1.0,
则该设备被视为中密度设备,并且默认不应用任何缩放比例。如果
值为 1.5,则表示设备是高密度设备,网页缩放比例为 1.5 倍
默认值。如果值为 0.75,则设备会被视为低密度设备,网页
默认缩放比例为 0.75 倍
Android 浏览器和 WebView
应用的缩放比例基于网页的
目标密度。正如定义视口部分所述
目标密度,则默认目标是中密度,但您可以更改目标
网页针对不同屏幕密度缩放的方式
例如,以下是使用 JavaScript 查询设备密度的方法:
if (window.devicePixelRatio == 1.5) { alert("This is a high-density screen"); } else if (window.devicePixelRatio == 0.75) { alert("This is a low-density screen"); }