CSS 中的 VH

2024年8月29日 | 阅读 8 分钟

在 CSS 中,VH 代表“视口高度”,它是一种测量单位,表示视口(网页的可见区域)高度的百分比。视口高度基于浏览器窗口或容器元素的高度,取两者中较小者。

示例:在 CSS 中使用 VH 单元

在此示例中,.The 元素的高度将设置为视口高度的一半,而与屏幕尺寸无关。此单位对于创建响应式设计非常有用,这些设计可以适应不同的屏幕尺寸,同时保持一致的布局。

请记住,VH 有时可能会导致意外行为,尤其是在与其他 CSS 属性结合使用时。例如,将 VH 单位用于字体大小可能会导致文本在不同设备上变得非常大或非常小。测试和微调您的设计以确保它们在各种屏幕上看起来和功能如预期非常重要。

什么是 VH?

视口单位(VH、VW、Vmin 和 Vmax)是 CSS 中相对测量单位,它们直接与浏览器视口的大小相关,视口是浏览器窗口中网页的可见区域。具体来说,VH 代表“视口高度”,表示视口高度的百分比。

VH 如何工作?

  • VH 等于视口高度的 1%。
  • 如果浏览器窗口的高度发生变化,VH 值将自动调整以保持相同的比例。
  • VH 有助于创建适应不同屏幕尺寸和方向的响应式设计。

CSS 中 VH 的用例

  • 响应式布局:您可以使用 VH 单位创建元素根据视口高度调整其高度的布局。这对于必须填充屏幕一定部分的页眉、页脚和部分尤其有用。
  • 全屏元素:将元素的 height 设置为 100VH 可以创建一个跨越视口整个高度的元素,这对于创建全屏部分或背景非常有用。
  • 垂直居中:将 VH 单位与 flexbox 或 grid 布局结合使用,可以使内容在容器内垂直居中,而不管视口高度如何。
  • 排版:您可以使用 VH 单位来设置字体大小,使文本能够响应视口高度的变化。
  • 滚动触发动画:通过将 VH 单位与 JavaScript 结合使用,可以在用户滚动时触发元素进入或退出视口的动画。

CSS 中 VH 的警告和注意事项

  • 移动工具栏:一些移动浏览器可能会在显示或隐藏其 UI 元素(如地址栏)时调整视口高度,从而导致意外的布局更改。
  • 溢出和过度滚动:当使用 100VH 创建全屏元素时,请注意,某些移动浏览器可能允许轻微的过度滚动,从而显示底层内容。如果需要,可以通过在 body 上设置 overflow: hidden 来防止这种情况。
  • 字体大小影响:在使用 VH 单位设置字体大小时要小心,因为它们可能会在极端视口尺寸下使文本过大或过小。通常最好将 VH 单位与媒体查询或其他响应式技术结合使用。
  • 兼容性:视口单位在现代浏览器中得到很好的支持,包括 Chrome、Firefox、Safari 和 Edge 的主要版本。但是,与任何 CSS 功能一样,在不同设备和浏览器上测试您的设计以确保行为一致是很好的做法。

总而言之,VH 单位是创建适应各种屏幕尺寸和方向的响应式设计的强大工具。它们可用于多种用途,从全屏部分到排版和动画。但是,了解它们的局限性和潜在的怪癖对于跨设备创建流畅一致的用户体验非常重要。

CSS 中 VH 的用途

以下是关于在 CSS 中使用 VH 单元的更多信息

1. 响应式布局: VH 单位的主要用途之一是创建响应式布局。通过将 VH 单位用于容器、部分或页眉等元素,您可以确保它们能够适应视口的高度,从而在不同设备上提供一致的体验。

2. 全高元素:您可以使用 VH 创建跨越视口整个高度的元素。例如,如果您想创建全高侧边栏或覆盖整个屏幕的背景,可以将高度设置为 100VH。

3. 垂直居中:VH 单位通常与 display: flex 或其他布局技术一起使用,将内容垂直居中在容器内。

4. 媒体查询:您可以在媒体查询中使用 VH 单位来根据视口高度创建断点。当您希望在用户上下滚动页面时调整元素布局或样式时,这可能很有用。

5. 滚动依赖动画:您可以使用 VH 单位创建由滚动触发的动画,以计算特定元素何时进入或退出视口。

6. 组合单位:您可以将 VH 单位与其他单位结合使用,以创建更复杂的响应式布局。例如,您可以使用 calc() 来计算基于视口高度和固定值的组合大小。

在此示例中,页眉的高度将是视口高度的 10% 加上额外的 50 像素。

7. 最小值和最大值:与其他单位一样,您可以为使用 VH 单位的属性设置最小值和最大值。这有助于确保元素在不同设备上是可管理的。

8. 垂直滚动捕捉:您可以使用 scroll-snap-type 和 scroll-snap-align 属性以及 VH 单位来创建平滑的垂直滚动体验,其中内容捕捉到特定位置。

9. 转换中的视口单位:您可以在 CSS 转换中使用 VH 单位来创建响应视口高度变化的平滑动画。

10. 随媒体查询变化的单位:根据设计要求,您可以根据特定断点调整 VH 单位的使用。例如,在较小的屏幕上,将某些元素切换为固定的像素值。

11. 避免过度滚动:有时,对全屏元素使用 100VH 可能会导致过度滚动,其中浏览器视口会略微滚动超出元素。您可以通过在显示此类元素时在 body 元素上设置 overflow: hidden 来防止这种情况。

虽然 VH 单位对于创建响应式设计非常强大,但重要的是在各种设备和浏览器上测试您的布局以确保行为一致。由于浏览器工具栏或其他影响视口高度的 UI 元素等因素,不同设备可能会对 VH 的解释略有不同。始终要在响应式设计和确保良好的用户体验之间取得平衡。

CSS 中 VH 的优势

  1. 响应式设计:使用 VH 单位的主要优势之一是它们有助于创建适应不同屏幕尺寸和方向的响应式设计。以 VH 单位测量的元素将自动调整以在视口高度变化时保持比例。
  2. 一致性:VH 单位确保元素相对于视口保持一致的大小。这有助于在设备之间创建统一的外观和感觉。
  3. 全屏元素:将元素的 height 设置为 100VH 可以创建一个填充视口整个垂直高度的元素,这对于创建全屏部分、背景或横幅非常有用。
  4. 垂直居中:VH 单位可与 flexbox 或 grid 布局结合使用,将内容垂直居中在容器内,有助于实现平衡且美观的布局。
  5. 基于滚动的效果:借助 JavaScript,VH 单位可以在用户向下滚动页面时触发动画或操作。
  6. 相对于视口:与相对包含元素尺寸的百分比不同,VH 单位始终相对于视口,这使得它们在容器大小未知的情况下特别有用。
  7. 简洁性:使用 VH 单位可以简化响应式布局的创建。您可以创建流体设计,无需大量媒体查询即可自动适应不同的屏幕尺寸。
  8. 动态排版:将 VH 单位应用于字体大小可以创建与视口高度成比例缩放的动态排版。这对于页眉和主页部分尤其有用。
  9. 宽高比控制:VH 单位可以与其他单位结合使用,以保持图像或视频等元素的特定宽高比。
  10. 避免溢出:在将元素的 height 设置为 100VH 时,请确保它永远不会在其父容器内导致垂直溢出。
  11. 一致的垂直间距:通过为垂直边距和填充使用 VH 单位,您可以保持元素之间的间距一致,而与屏幕尺寸无关。

CSS 中 VH 的缺点

  1. 移动浏览器行为:一些移动浏览器会在显示或隐藏地址栏等 UI 元素时调整视口高度。
  2. 过度滚动问题:对全屏元素使用 100VH 可能会在某些移动设备上导致过度滚动,从而显示底层内容并破坏用户体验。
  3. 极端屏幕尺寸:在非常小或非常大的屏幕上,将 VH 单位用于字体大小或元素高度可能会导致不良的视觉效果,使文本和元素显得不成比例地大或小。
  4. 跨浏览器兼容性:虽然 VH 单位在现代浏览器中得到广泛支持,但在不同浏览器版本之间可能存在一些行为不一致,尤其是在旧浏览器中。
  5. 可访问性:过度依赖 VH 单位设置字体大小可能会导致可访问性问题,因为文本可能对于视力障碍的用户来说太小而无法阅读。
  6. 媒体查询复杂性:在媒体查询中使用 VH 单位时,由于视口单位的动态性质,实现跨各种断点的一致设计可能更复杂。
  7. 小屏幕上的复杂性:在小屏幕上为字体大小使用 VH 单位可能会导致文本过大,从而难以将内容容纳在视口中。
  8. 精度不足:在某些情况下,VH 单位可能无法提供精细调整布局所需的精度,尤其是在处理小型 UI 元素时。
  9. 跨设备差异:由于不同浏览器的行为以及基于用户设备的调整,在各种设备上实现像素级一致性可能具有挑战性。
  10. 可访问性挑战:虽然 VH 单位可以帮助响应式设计,但它们并不总是能为残障用户带来最佳的可访问性。例如,文本可能变得太小而无法舒适地阅读。
  11. 响应式文本换行:将 VH 单位用于文本大小可能无法很好地与围绕图像或其他元素的文本换行配合使用,因为文本可能需要调整以正确适应可用空间。

结论

VH 单位是一个多功能工具,它使网页设计师能够创建响应式、视觉上令人愉悦的布局。通过平衡其优缺点并采用补充的响应式设计技术,您可以创建用户友好的体验,这些体验能够无缝地适应各种设备和屏幕尺寸。跨不同设备和浏览器进行测试和完善设计对于成功地在 CSS 中实现 VH 单位至关重要。


下一个主题CSS 'Rem'