viewport meta 标记
视口
视口:指用户在浏览器中看到页面内容的区域。视口的大小取决于设备的屏幕大小和分辨率,以及用户是否使用了缩放功能。
分为三个:
- 布局视口:是浏览器中用来渲染页面的区域大小,通常比屏幕宽度要大,以适应页面的内容。
- 视觉视口:是用户在浏览器中看到的页面内容区域,可以通过缩放来改变大小。
- 理想视口:设备的物理分辨率下的视口大小,通常等于设备的屏幕宽度。在移动端开发中,通常会通过设置
<meta>
标签来控制理想视口的大小。
视口基础知识
针对移动页面一般都有下面这行代码
<meta name='viewport' content='width=device-width,initial-scale=1'/>
viewport是meta标签的一个属性,它有六个属性
- width:设置视口的宽度,可以是固定的像素值,如(width=600),也可以设置特殊值
device-width
,即100vw,100%的视口宽度。最小值为1.最大值为10000,负值会被忽略。 - height:设置视口的高度,一般不设置,因为视口会自动调节高度,也可以使用
device-height
,即100vh,100%的视口高度。最小值最大值同上。 initial-scale
:控制页面首次加载时显示的缩放倍数。最小值为0.1,最大值为10.默认值为1.负值会被忽略。minimum-scale
:控制页面允许缩小的倍数。最小为0.1,最大为10。默认为1,负值会被忽略。maximum-scale
:控制页面允许的放大的倍数。设置一个低于3的值将不具备无障碍访问性。最小值为0.1,最大值为10。默认为1,负值会被忽略。user-scalable
:控制是否允许页面上的放大和缩小操作。有效值为0、1、yes、no。默认值为1,与yes相同。将值设置为0将潍坊Web内容无障碍指南interactive-widget
:指定交互式UI组件(如虚拟键盘)对页面视口的影响。有效值:resizes-visual
、resizes-content
或overlays-content
。默认值:resizes-visual
。
屏幕密度
移动端和pc端不同,屏幕小但是分辨率却高达1920-1080像素(约等于400dpi(每英寸面积内的像素点数))。所以,在移动端,1px并不等于1个物理像素,而是等于0.25个物理像素。
视口宽度和屏幕宽度
<meta name='viewport' content='width=500,initial-scale=1'/>
页面可以将其视口设置为特定尺寸,例如"width=320,initial-scale=1"
的定义可以用来精确地适应纵向模式下的小型手机显示屏。当浏览器以较大的尺寸渲染页面时,这可能导致问题。为了解决这个问题,如果有必要,浏览器会扩大视口宽度,以便按要求的比例填充屏幕。 上面的代码,视口宽度为500px,但是屏幕宽度为320px,浏览器会扩大视口宽度,以便适应屏幕。
交互式UI组件效果
浏览器的交互式UI组件可以影响页面视口的大小。最常见的这种UI组件式虚拟键盘。要控制浏览器应该使用那种调整大小的行为,可以设置interactive-widget
属性
- resizes-visual:当交互式UI组件出现时,视口会调整大小以适应屏幕,但不会影响页面内容的大小。
- resizes-content:当交互式UI组件出现时,视口会调整大小以适应屏幕,同时页面内容也会调整大小以适应新的视口大小。
- overlays-content:当交互式UI组件出现时,视口不会调整大小,但页面内容会调整大小以适应新的视口大小。
分辨率
分辨率指显示器所能显示的像素是多少,显示器可显示的像素越多,画面就越精细。
物理像素:
物理像素也称设备像素是屏幕的最小物理单位。是一个由红蓝绿三原色组成的一个点。
比如2532 * 1170
分辨率指的就是物理像素,表示屏幕水平由1170个物理像素点,垂直有2532个物理像素点。
css像素
css像素又称为虚拟像素、设备独立像素或逻辑像素也就是web开发中使用的像素(px)。
物理像素和css像素的关系
物理像素是屏幕显示页面效果的最小单位,css像素是web开发中使用的像素。在不同分辨率的屏幕下,有多个物理像素对应一个css像素,是现在不同分辨率的屏幕下显示相同的页面效果。
设备像素比(dpr)
设备像素比 = 物理像素 / CSS像素
dpr = 2 意味着一个CSS像素需要2 * 2个物理像素来描绘。
获取dpr:window.devicePixelRatio;
PPI DPI
PPI:图像的采样率(在图像中,每英寸所包含的像素数目) DPI:每英寸点数,即每英寸的像素点数,是衡量打印机打印精度的重要指标。