我需要在div中显示一个真棒字体图标。
我已经从这里https://fontawesome.com/icons/share-alt-square?style=solid下载了此图标
,然后我使用文本编辑器打开了下载的svg文件,复制了d
属性的数据并放入了我的标记中。
最终标记应如下所示:
<div style="width: 32px; height: 32px;">
<svg viewBox="0 0 64 64" width="32" height="32">
<g>
<rect width="64" height="64" fill=""></rect>
</g>
<g>
<path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z" fill="white"></path>
</g>
</svg>
</div>
我更喜欢这种方法。如果我以错误的方式使用它,请纠正我,它将不起作用。 在这种情况下,最合适的解决方案是什么?
答案 0 :(得分:1)
问题是您使用的路径来自viewBox
大得多的svg。因此,为了使其适应您的需求,您需要更改svg的viewBox
。
为了知道使用什么viewBox
,可以使用原始图标的viewBox
。另一种方法是获取路径的边界框(javascript方法:thePath.getBBox()
)的大小和位置,并使用它来构建viewBox
的新值。
svg{border:1px solid}
<div style="width: 32px; height: 32px;">
<svg viewBox="0 32 448 448">
<g>
<rect y="32" width="448" height="448" fill=""></rect>
</g>
<g>
<path id="thePath" d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z" fill="white"></path>
</g>
</svg>
</div>