【发布时间】:2021-07-21 17:37:18
【问题描述】:
如果我在 HTML 中嵌入 svg 图片,它会随着浏览器宽度的变化(缩小和扩大)而调整大小,并且图片会停留在页面顶部。
如果我内联相同的 svg,我会遇到问题。当我缩小浏览器的宽度时,图像会随之缩小,但图像会在页面中向下移动。
你可以在this fiddle看到我的意思
由于图像需要与某些嵌入的 svg 保持相同的相对位置,因此向下移动页面是一个问题。
<!DOCTYPE html>
<html>
<head>
<style>
svg{
position: absolute;
left: 1px;
top: 1px;
width:100%;
}
#externalSVG{
position: absolute;
left: 1px;
top: 1px;
width:100%;
}
</style>
</head>
<body>
<svg width="960.42" height="444.28" version="1.1" viewBox="0 0 254.11 117.55" >
<g transform="translate(-127.11 -59.721)">
<g transform="matrix(-.5 0 0 .5 381.25 59.248)" fill="#2f0">
<rect x="396.88" y="73.891" width="74.804" height="74.804" rx="0" ry="0"/>
<rect x="430.99" y=".94618" width="6.588" height="235.1" rx="0" ry="0"/>
<rect x=".056101" y="108.59" width="508.22" height="5.4108" rx="0" ry="0"/>
</g>
</g>
</svg>
<embed id="externalSVG" src="embed.svg" >
</body>
</html>
大概我误解了一些关于布局的东西。有什么想法吗?
【问题讨论】:
-
移除 svg 的 height 属性。您还可以删除宽度属性和宽度的 css 规则,因为没有宽度和高度的 svg 元素将默认采用所有可用宽度