【发布时间】:2014-03-27 18:35:30
【问题描述】:
我需要将 svg 嵌入到 html 中并以响应式方式对其进行样式设置。对于常规图像,这对我来说效果很好:
img {
max-width: 100%;
}
img[height] {
height: auto; /* if the <img> tag provides a width keep aspect ratio */
}
不幸的是,这不适用于嵌入式 svg。下面是一个示例,它如何适用于嵌入的 svg 和 img 标签中的 svg。
这是一个示例标记:
<div>Embedded SVG:
<svg xmlns="http://www.w3.org/2000/svg" width="300px" height="300px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid meet"><circle cx="50" cy="50" r="50" /></svg>
</div>
<div>SVG as image tag:
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDBweCIgaGVpZ2h0PSIzMDBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIiAvPjwvc3ZnPg0K" />
</div>
和css:
div {
resize: both;
outline: 1px solid red;
margin-bottom: 3em;
padding: 1em;
}
svg,
img {
display: block;
outline: 1px solid blue;
max-width: 100%;
height: auto;
}
缩小两个图像的比例,但嵌入的 svg 保持其原始高度(蓝色轮廓)
如何避免嵌入的 svg 创建空白?
您可以在 jsfiddle 上找到示例。
我很想发布屏幕截图,但我没有足够的声誉:/
编辑:该错误仅出现在 chrome 中。相应地更改了标题
【问题讨论】:
-
那么您希望从哪里删除空格?
-
可以轻松地将其指向两个屏幕截图。但是堆栈溢出不允许我发布图片。只需缩放我发布的 jsfiddl,您就会看到问题
-
我相信它就像设置 svg 文件的视口属性一样简单。如果你在
或
标签: html google-chrome svg