如何组装和对齐svg?

Posted

技术标签:

【中文标题】如何组装和对齐svg?【英文标题】:How to assemble and align svg? 【发布时间】:2022-01-15 17:54:56 【问题描述】:

如您所见,图像包含三个部分:标记、圆圈和图标:

<svg   fill="none" xmlns="http://www.w3.org/2000/svg" style="background-color:#eee">
<path fill-rule="evenodd" clip-rule="evenodd" d="M37.434 56.755C49.337 53.142 58 42.082 58 29 58 12.984 45.016 0 29 0S0 12.984 0 29c0 13.083 8.663 24.142 20.566 27.755l6.834 9.112a2 2 0 0 0 3.2 0z" fill="#fff"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 55c14.36 0 26-11.64 26-26S43.36 3 29 3 3 14.64 3 29s11.64 26 26 26z" fill="#000000"/>
<path d="M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z" fill="#ffffff"/>
</svg>

图标未居中。

有人知道如何重新排序所有这些吗?

【问题讨论】:

通过了解 M 在 SVG d-path 中的作用:developer.mozilla.org/en-US/docs/Web/SVG/Element/path 请将transform="translate(17,16)"添加到最后一个路径 感谢 enxaneta 或将最后一条路径更改为以 M28 25 (11+17 , 9+16) 开头 @Danny'365CSI'Engelman 这将在全相对路径的情况下执行,即所有小写命令。在 M28 25 以上的路径的情况下,会扭曲路径而不是移动它 【参考方案1】:

我没有很好地理解你的问题,你想将图像内的图像对齐还是对齐到你的 html 的中心?

如果你想对齐到你的 html 网页的中心,你可以使用这个 transform: translate((x-axis)px,((y-axis)px); 在你的 CSS 上,例如 transform: translate(300px,50px);

如果你想对齐另一个图像中的项目,你需要将你的 main-svg 设置为 position:relative 并放置你的另一个 svg position:absolute 并且你可以更容易地调整位置。

嗯,希望对您有所帮助,您可能会从其他人那里得到更好的解决方案,我几周前刚刚学习了 html 和 CSS。

【讨论】:

以上是关于如何组装和对齐svg?的主要内容,如果未能解决你的问题,请参考以下文章

如何将SVG图像对齐到左下角?

如何将文本与 SVG 元素对齐? [复制]

如何在 SVG 剪辑路径中居中对齐图像?

组装 - 堆对齐 - x86 intel

如何将 Bootstrap 4 中的 SVG 垂直对齐到行高?

如何根据子 SVG 内容对齐父 div 高度