视口概念 您所在的位置:网站首页 css窗口高度 视口概念

视口概念

2023-03-14 06:49| 来源: 网络整理| 查看: 265

在上面描述的布局视口和视觉视口不是您将遇到的唯一视口。在布局视口中完全或部分显示的任何子视口都被视为可视视口。

我们通常认为宽度和高度的媒体查询是相对于浏览器窗口的宽度和高度而言的。它们实际上是相对于视口的,即主文档(document)中的窗口(window 对象),但它也是嵌套浏览上下文(如对象,iframe 和 SVG)中元素父级的本身的大小。在 CSS 中,我们也有基于视口大小的长度单位。1vh 单位是 1% 布局视口的高度,vw 单位与此类似。

对于一个 iframe 来说,视觉视口是其内部高度和宽度的大小而不是其父文档的大小。你可以为其高度和宽度设置任意数值,但过大的值可能会使 iframe 部分内容超出视口导致超出部分不可见。

在 CSS 中,可以使用相对于视口的长度单位 vh 和 vw。1vh 意味着值为视口高度的 1%,同理 1vw 即值为视口宽度的 1%。

需要注意的是,当你在 CSS 中使用 vw 和 vh 设置 iframe 的样式时,1vh 表示的是 iframe 高度的 1%,但 1vw 表示的则是 document 宽度的 1%。

iframe { width: 50vw; }

在上面的例子中,一个 iframe 宽度被设置为 50vw,假设父文档宽度为 1200px,按照上面的规则,它的的实际宽度将会是父文档宽度的 50%,即 600px。在这个例子中,每 1vw 将折算 6px。如果因为缩放,父文档宽度变为 800px,则 1vw 将代表 4px,iframe 的宽度将会是 400px。

此外,一个在 iframe 文档内基于宽度的媒体查询将会使用 iframe 的视口宽度进行参照。

@media screen and (min-width: 500px) { p { color: red; } }

如果上述 CSS 代码块包含于一个 iframe 所指向的一个文档头部,那么当用户放大该文档时,p 标签颜色将变红;当用户不使用缩放时,该样式则不会被应用。

SVG

在 SVG 文档中,视口即 SVG 图片的可视区域。同样,你也可以为 SVG 设置任何高度和宽度,但不恰当的大小可能无法显示整个 SVG 图片。在 SVG 中的可见部分被称为这个 SVG 的视口。你可以使用 上的 width 和 height 属性来修改 SVG 的视口大小。

在这个示例中,这个 SVG 的视口长宽比被设置为了 3:4,默认情况下宽为 400 像素,高为 300 像素。

SVG 参照 viewbox 属性,内置了一个与视口无关的坐标系。

如果你在你的 HTML 文档中使用了 SVG,这个 SVG 的视口默认为包含它的块级容器或者 SVG 容器上所设置的宽度和高度大小。当你使用 @media 来对 SVG 进行媒体查询时,其参照的高度和宽度取决于包裹着 SVG 的容器,而不是整个浏览器视口。

@media screen and (min-width: 400px) and (max-width: 500px) { /* css goes here */ }

如果你在其他元素上使用上面这个示例的媒体查询,当视口(通常为浏览器的视口)满足条件:宽度为 400px 至 500px 的范围内时,媒体查询内的 CSS 样式将会自动应用。但对于 SVG 来说,其媒体查询基于包裹着它的元素。

如使用 ,通过设置 src 指向 SVG 文件时,SVG 的外部容器,或者说包裹着 SVG 的元素就是这个 img。如果在这个外部容器上应用了 width 属性,则对应的视口就是这个属性的值,而不是整个文档的视口宽度。

如果把上面的 CSS 媒体查询样式添加到 SVG 文件中去,当 SVG 容器的宽度在 400 - 500 px 时,将应用该 CSS 样式。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有