在div中输出字体真棒svg图标

时间:2019-06-30 11:43:57

标签: html svg vector-graphics

我需要在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>

我更喜欢这种方法。如果我以错误的方式使用它,请纠正我,它将不起作用。 在这种情况下,最合适的解决方案是什么?

1 个答案:

答案 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>