【发布时间】:2017-06-07 19:55:13
【问题描述】:
我想让内联 SVG 填充浏览器窗口的整个宽度。 SVG 在 viewBox 之外有一些内容。这是 SVG 文件:http://pastebin.com/F5irDNai
当我将宽度设置为 100% 时,viewBox 之外的内容变得可见:
svg {
width: 100%;
}
看到这个jsfiddle:https://jsfiddle.net/3w2hy8kv/1/ 红色矩形是 viewBox 的边界。
我想要的是让 SVG 的 viewBox 水平填充整个浏览器窗口,而不会出现 viewBox 之外的内容。这可能吗?
【问题讨论】:
-
不会溢出:隐藏;工作吗?
-
不,我在父元素、body 和 svg 本身上都试过了,我没有隐藏 viewBox 之外的内容。每当宽度大于 viewBox 时,就会出现 viewBox 之外的内容。
-
您需要查看 preserveAspectRatio 属性。还可以尝试在 div 上设置边框以查看其位置。其他要寻找的东西:svgomg 来优化你的 svg,sara souedan 关于 preserveAspectRatio 的文章。最接近我在 svg 元素上使用
preserveAspectRatio="xMinYMid slice"得到的结果 -
溢出:隐藏剪辑到视口而不是视图框...您可以使用clipPath 剪辑到视图框...stackoverflow.com/questions/24074216/…
-
@Ruskin:preserveAspectRatio 是关键。谢谢!