首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缩放SVG以填充90%的可用空间(同时保持高宽比)

缩放SVG以填充90%的可用空间(同时保持高宽比)
EN

Stack Overflow用户
提问于 2022-08-26 08:18:07
回答 1查看 39关注 0票数 0

我有一个<div id="Frame">元素,其中包含一个<svg>元素。我希望<svg>元素在帧中居中,并以1/1的高宽比增长,直到一个边缘消耗掉90%的可用空间(因此它几乎填满了整个空间,但有一点边框)。但我不能让SVG长出来。我阅读了许多其他类似的答案,有人说CSS覆盖SVG的宽度/高度属性,但我尝试在情况下删除它们(并不理想),但它仍然没有增长)。另一种常见的解决方法是width: 100%; height: auto;,它对我不起作用。

代码语言:javascript
复制
main {
  padding: 0; margin: 0;
  width: 100vw;
  height: 100vh;
  }
  
#FRAME {
  padding: 0; margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background-color: lightyellow;
  position:relative;
}

#FRAME svg {
  max-width: 90%;
  max-height: 90%;
  width: 90%;
  height: auto;
  aspect-ratio: 1/1;
  flex-grow: 1;
}
代码语言:javascript
复制
<main>
  <div id="FRAME">
    <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24">
      <path d="M0 0h24v24H0z" fill="none"></path>
      <path d="M3 5v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5a2 2 0 0 0-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z"></path>
    </svg>
  </div>
 </main>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-26 08:37:39

您需要向SVG中添加一个viewBox以确定SVG。

虽然widthheight属性有助于保持高宽比,但viewBox有助于正确缩放SVG内容。

代码语言:javascript
复制
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
  <path d="M0 0h24v24H0z" fill="none"></path>
  <path d="M3 5v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5a2 2 0 0 0-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z"></path>
</svg>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73498041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档