html - 将 SVG 拉伸(stretch)到视口(viewport)(容器 div),忽略由 viewBox 设置的纵横比

标签 html css svg browser

我有这个内联 svg在 jsbin 上。它看起来像:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 1920 1080" style="enable-background:new 0 0 1920 1080;" xml:space="preserve" width="100%" height="100%" preserveAspectRatio="none">
// different svg element groups and paths
</svg>

output 可以清楚地看出,它采用了视口(viewport)宽度,但没有获得视口(viewport)的高度,并且在 svg 的高度之外有一个空白区域(如果打开开发工具并模拟 iPad View 或在 chrome 上全屏显示,这很明显) .期望所需要的是让 svg 适合视口(viewport)。

SVG 已导出,路径相框和灯泡相对于整个 svg viewbox 坐标。因此,我无法选择分离出单独的路径并即插即用,这对于移动 View 来说是必需的(是吗?),即它们与 viewBox 大小相关联。

至少对于桌面版本,我怎样才能让我的 svg 获取视口(viewport)的宽度和大小。

最佳答案

您可以通过为 height 设置 vh 值来让您的 SVG 填充视口(viewport)高度

svg {
   height: 100vh; /* Fill entire viewport height */
}

但这会影响您的宽高比。您需要保持纵横比还是只让 SVG 填满整个屏幕?

(另外,为了确保填满整个屏幕,您可能需要去掉默认边距 body {margin: 0;} )

关于html - 将 SVG 拉伸(stretch)到视口(viewport)(容器 div),忽略由 viewBox 设置的纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42266008/

相关文章:

javascript - 单击鼠标获取图像的宽度和高度

html - 一旦内容低于屏幕高度,布局就会困惑

javascript - Laravel,我网站上的所有点击事件都已停止工作

css - SVG:viewBox 中宽度非常小的文本(1 个单位宽)

ios - 如何在 ios SWIFT 4.0 中使用 ttf/SVG 图标

javascript - 在不在 span 标记内的 span 文本后添加文本

html - 为什么 Bootstrap 工具提示在 Bootstrap 模式中不起作用?

css - 按钮不进入div?

CSS 保持悬停元素打开,直到另一个元素悬停

css - CSS3 伪类与 SVG 可渲染元素的兼容性如何?