视口单位(viewport units)是相对视口大小(浏览器窗口的大小)进行计算的单位。在网页设计中,视口可以理解为浏览器显示内容的区域。视口单位主要有四种:vw
、vh
、vmin
和 vmax
。
四种视口单位
-
vw
(Viewport Width,视口宽度)1vw
表示视口宽度的 1%。- 举例:如果浏览器窗口的宽度是 1000 像素,那么
1vw = 10 像素
。
-
vh
(Viewport Height,视口高度)1vh
表示视口高度的 1%。- 举例:如果浏览器窗口的高度是 800 像素,那么
1vh = 8 像素
。
-
vmin
(Viewport Minimum,视口最小值)vmin
取vw
和vh
中的较小值。- 举例:如果视口宽度是 1000 像素,视口高度是 600 像素,那么
1vmin = 6 像素
,因为vh
(视口高度)较小。
-
vmax
(Viewport Maximum,视口最大值)vmax
取vw
和vh
中的较大值。- 举例:如果视口宽度是 1000 像素,视口高度是 600 像素,那么
1vmax = 10 像素
,因为vw
(视口宽度)较大。
理解方式
可以将视口单位看作是根据浏览器窗口大小动态变化的“比例单位”。当用户调整浏览器窗口大小时,使用视口单位定义的元素大小也会跟着变化。
举例说明
假设浏览器窗口的宽度是 1000 像素,高度是 800 像素,以下是 vw
和 vh
的对应值:
10vw
:表示宽度的 10%,即1000px * 0.10 = 100px
。20vh
:表示高度的 20%,即800px * 0.20 = 160px
。
当你调整浏览器的大小时,这些值会动态调整。比如,浏览器宽度变成了 1200 像素,那么 10vw
就变成了 120px
。
具体应用
1. 设置页面元素的宽高自适应屏幕
你可以使用 vw
和 vh
来让元素相对于整个页面的视口大小进行缩放:
div {width: 50vw; /* 宽度是视口宽度的一半 */height: 50vh; /* 高度是视口高度的一半 */
}
- 如果视口宽度是 1000 像素,高度是 800 像素,那么这个
<div>
的宽度就是 500 像素,高度就是 400 像素。 - 随着浏览器窗口大小的改变,
<div>
的宽高会自动调整。
2. 全屏背景图片
通过 vw
和 vh
可以轻松设置全屏的背景图片或元素:
body {background-image: url('background.jpg');background-size: 100vw 100vh; /* 宽高充满整个视口 */
}
这样,无论屏幕大小如何变化,背景图片都会保持充满屏幕。
3. 动态字体大小
可以使用 vw
来根据视口宽度动态调整字体大小:
h1 {font-size: 5vw; /* 字体大小是视口宽度的 5% */
}
如果视口宽度是 1000 像素,那么字体大小为 50px
。当视口宽度变化时,字体大小会随之变化。
总结
vw
和vh
:用来基于视口的宽度和高度,灵活设置元素的宽高、间距等。vmin
和vmax
:在不同的屏幕方向(横向或纵向)上,选择视口宽度和高度中较小或较大的值。
通过视口单位,你可以让网页的布局和样式更加响应式,适应不同屏幕的大小。这对于需要在手机、平板和桌面设备上展示自适应内容的网页来说非常有用。