【发布时间】:2019-01-24 13:40:00
【问题描述】:
我有一个来自 inkscape 的漂亮背景 SVG 图像,它标志着从一个文本部分到下一个文本部分的过渡。我希望该背景图像放大或缩小到文本部分的整个宽度。出于响应性的原因,该大小取决于浏览器的宽度。但是,我希望该背景图像具有 20 像素的固定高度。
什么不起作用:
-
background-size: cover;这对我不起作用,因为它会在右侧切断图像而不是缩小它,好吧。 -
background-size: contain这对我不起作用,因为它总是会同时在 x 和 y 方向上缩小图像。结果,图像始终保持其原始 x-y 比率,好吧。 - 结合
cover和contain由于语法原因,这是不可能的,好吧。 -
background-size: 100% 20px;或background-size: auto 20px那是行不通的,即使我本以为会这样。我用PNG试了一下,效果很好。但是对于 SVG,宽度会被正确调整,然后高度也会被调整,以使图像保持其原始比例,这是我不希望的。但是,我希望使用 SVG,因为它是一个相对简单的图像,并且我希望它在所有设备上都具有最佳分辨率,包括真正的大屏幕,而不使用巨大的 PNG 图像。 - 由于问题似乎是 SVG 特有的,我在文本编辑器中打开了 SVG,并将属性和值
preserveAspectRatio="none"插入到标签中。由于它仍然不起作用,我还尝试删除 SVG 标记中的宽度和高度以及 viewBox 规范。没有成功。
【问题讨论】:
-
svg 将始终尝试保持比例...您可以分享 SVG 并向我们展示预期的结果吗?
-
你在 svg 中有
viewBox属性吗? -
请更新您的问题minimal reproducible example
标签: css svg responsive-design responsive-images