我对 HTML 之类的东西很陌生,我想将 SVG 插入到按钮中。我尝试使用<object>但 SVG 是不可见的。有什么建议我可以做些什么来使其可见并放入盒子内吗?
Har*_*tts 10
有几种不同的方法。包含 SVG 的最简单方法可能是使用标签<img>,就像处理任何其他图像类型一样:
<button>
<img src="https://api.iconify.design/ic-baseline-face.svg?height=24" aria-hidden="true">
Smile
</button>Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们导入的 SVG 的大小大约是正确的,但如果不是,则可能更难以按照您喜欢的方式调整其大小,因为您需要考虑两个元素而不是一个元素。在这种情况下,一个好的替代方法是在 CSS 中将其设置为背景:
.my-button {
width: 3em;
height: 3em;
background: url("https://api.iconify.design/ic-baseline-face.svg?height=24") center no-repeat;
}Run Code Online (Sandbox Code Playgroud)
<button class="my-button" aria-label="Smile"></button>Run Code Online (Sandbox Code Playgroud)
这种方法通常用于图标,但请注意,在此方法中我们必须指定大小(在本例中使用CSS 中的width和)。height
作为第三个选项,您可以直接在 HTML 中包含 SVG 源代码,这允许您使用 CSS 对其进行样式设置并使用 JavaScript 对其进行操作,但这对于按钮图标通常不太有用。为了完整起见,尽管你会这样做:
<button>
<!-- From https://material.io/tools/icons/?style=baseline -->
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"/>
<path fill="none" d="M0 0h24v24H0z"/>
</svg>
</button>Run Code Online (Sandbox Code Playgroud)
CSS-Tricks 有一篇关于这三种方法的好文章。
| 归档时间: |
|
| 查看次数: |
19926 次 |
| 最近记录: |