网站首页 > 知识剖析 正文
大家好 我是 Echa。
在最近发布的 Chrome 108 中,带来了几个新的 CSS 视口单位:
- svh :小视口单位
- lvh :大视口单位
- dvh:动态视口单位
视口(viewport)代表当前可见的计算机图形区域。在 Web 浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的 UI, 菜单栏等 — 即指你正在浏览的文档的那一部分。
一般我们提到的视口有三种:布局视口、视觉视口、理想视口,在我之前写的下面这篇文章中详细介绍了视口相关的概念和原理看兴趣可以看
关于移动端适配,你必须要知道的
在响应式布局中,我们经常会用到两个视口相关的单位:
- vw(Viewport's width):1vw 等于视觉视口的 1%
- vh(Viewport's height) : 1vh 为视觉视口高度的 1%
另外还有两个相关的衍生单位:
- vmin : vw 和 vh 中的较小值
- vmax : 选取 vw 和 vh 中的较大值
如果我们将一个元素的宽度设置为 100vw 高度设置为 100vh,它将完全覆盖视觉视口:
这些单位有很好的浏览器兼容性,也在桌面端布局中得到了很好的应用。
但是,在移动设备上的表现就差强人意了,移动设备的视口大小会受动态工具栏(例如地址栏和标签栏)存在与否的影响。视口大小可能会更改,但 vw 和 vh 的大小不会。因此,尺寸过大的 100vh 元素可能会从视口中溢出。
当网页向下滚动时,这些动态工具栏可能又会自动缩回。在这种状态下,尺寸为 100vh 的元素又可以覆盖整个视口。
为了解决这个问题,CSS 工作组规定了视口的各种状态。
- Large viewport(大视口):视口大小假设任何动态工具栏都是收缩状态。
- Small Viewport(小视口):视口大小假设任何动态工具栏都是扩展状态。
新的视口也分配了单位:
- 代表 Large viewport 的单位以 lv 为前缀:lvw、lvh、lvi、lvb、lvmin、lvmax。
- 代表 Small Viewport 的单位以 sv 为前缀:svw、svh、svi、svb、svmin、svmax。
除非调整视口本身的大小,否则这些视口百分比单位的大小是固定的。
除了 Large viewport 和 Small Viewport ,还有一个 Dynamic viewport(动态视口)
- 当动态工具栏展开时,动态视口等于小视口的大小。
- 当动态工具栏被缩回时,动态视口等于大视口的大小。
相应的,它的视口单位以 dv 为前缀:dvw, dvh, dvi, dvb, dvmin, dvmax。
目前,各大浏览器均已经对新的视口单位提供了支持:
最后
参考链接:
- https://web.dev/viewport-units/
- https://www.w3.org/TR/css-values-4/#viewport-relative-lengths
猜你喜欢
- 2024-11-25 简单小程序:登录页面(html)
- 2024-11-25 通过CSS控制PC端的TABLE在移动端展示
- 2024-11-25 利用 Python 开发桌面小工具,实现htm自动转为excel文件
- 2024-11-25 团结一致,尽显风采丨TR02807班HTML项目验收
- 2024-11-25 想学HTML该从何入手?web前端HTML终极指南
- 2024-11-25 超实用压力测试工具-ab工具
- 2024-11-25 前端入门二(html)
- 2024-11-25 JavaScript中的DOM
- 2024-11-25 HTML网页制作常用标签及说明——前端开发入门
- 2024-11-25 网页开发HTML5入门内容,一起来学习吧
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)