【发布时间】:2019-03-21 03:47:09
【问题描述】:
我试图让 SVG 图像在 100vh 全屏容器内等效于 object-fit。据我所知,我需要使用preserveAspectRatio="xMidYMid slice" 属性并设置width="100%" height="100%"
我似乎无法让它工作?当我使用它时,要么在容器底部显示一大块空白,要么当图像填满视口时,视口会变得比 100vh 大很多?
请注意,我不能使用 CSS background-image 属性,因为它是我正在构建的更广泛的 SVG/Javascript 动画的一部分。
Codepen:https://codepen.io/emilychews/pen/YJYrEa
有谁知道这里出了什么问题以及解决方案是什么?
提前感谢任何帮助/想法。
body {
margin: 0;
padding: 0;
display: flex;
width: 100%;
height: 100vh;
justify-content: center;
align-items: center;
}
#section-1, .background-clipped {
width: 100%;
height: 100%;
}
<section id="section-1">
<div class="background-clipped background-clipped-1">
<svg id="home-image-1" viewbox="0 0 100 100" preserveAspectRatio="xMidYMid slice">
<image x="0" y="0" xlink:href="https://i.postimg.cc/9XdQKYF1/dimon-blr-309444-unsplash.jpg" width="100%" height="100%" />
</svg>
</div>
</section>
【问题讨论】:
-
在我看来,如果这不是方形图像,那么您的视图框是错误的。不过可能不相关。
标签: html css image svg aspect-ratio