【发布时间】:2014-08-19 05:29:57
【问题描述】:
问题: 有没有办法用 CSS 改变 SVG 视图框的大小,但保留纵横比?或者是否有另一种方法可以在没有视图框的情况下保持 SVG 的纵横比。
问题: 我想响应地调整 SVG 的大小,但保持纵横比。视图框的宽度随页面调整,但高度不随宽度调整。问题在于容器 div 的高度取决于视图框的高度。因此,即使视图框的下半部分没有显示任何内容,容器 div 也可能非常高。
小提琴: http://jsfiddle.net/hT9Jb/1/
<style>
div{
width: 100%;
height: 500px;
background-color: #00ffff;
}
svg{
width: 50%;
background-color: #ffff00;
}
</style>
<div>
<svg version="1.1" id="Layer_1" x="0px" y="0px" width="250px" height="400px" viewBox="0 0 250 400" enable-background="new 0 0 250 400" aspect-ratio="XminYmin">
<rect x="0" y="0" fill="#FF0000" width="250" height="400"/>
</svg>
</div>
(对象 SVG 和 img SVG 不适用于我的目的。它必须是内联的。解决方案不一定是 CSS...javascript 绝对是一个可以接受的解决方案。)
【问题讨论】:
-
寻找这个? jsfiddle.net/hT9Jb/2
-
@KheemaPandey 我希望 div 符合 svg,而不是相反(你给我的小提琴不会保留视图框的纵横比)
-
@Sisyphus 这就是服务器端,但它确实给了我一个 javascript 的想法。