【问题标题】:Using Fontello SVG as a background-image使用 Fontello SVG 作为背景图像
【发布时间】:2015-06-30 18:35:54
【问题描述】:

我正在使用从Fontello 生成的字体图标(网络字体)。下载的包包括 SVG 文件

示例。我生成了仅包含 1 个图标 (mail-1) 的 fontello 包 如下所示:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
   <metadata>Copyright (C) 2015 by original authors @ fontello.com</metadata>
   <defs>
      <font id="fontello" horiz-adv-x="1000">
         <font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
         <missing-glyph horiz-adv-x="1000" />
         <glyph glyph-name="mail-1" unicode="&#xe802;" d="m929 11v428q-18-20-39-37-149-114-238-188-28-24-46-38t-48-27-57-13h-2q-26 0-57 13t-48 27-46 38q-88 74-238 188-21 17-39 37v-428q0-8 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7-1 7-3 5-5 4-8 2h-822q-7 0-12-6t-6-12q0-94 82-159 108-85 224-177 4-2 20-16t25-21 25-18 28-15 24-5h2q11 0 24 5t28 15 25 18 25 21 20 16q116 92 224 177 30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z" horiz-adv-x="1000" />
      </font>
   </defs>
</svg>

由于类似的代码,我需要在 CSS 中使用这个图标作为背景图像:

.icon {
    background: url('data:image/svg+xml; ... ');
}

...我在https://css-tricks.com/using-svg/...上读到过它...

但我不知道如何从我的 SVG (Fontello) 代码生成此 data:image/svg+xml 代码。当然,我将这个 SVG 代码粘贴在 background: url('data:image/svg+xml;... 但它不起作用... 帮忙!

【问题讨论】:

    标签: css svg webfonts fontello


    【解决方案1】:

    我通过以下步骤创建了一个带有来自字形的路径的 svg 文件。

    • 首先,转到config.json 并找到该角色。

    应该是这样的:

    {
          "uid": "91d1768d00bc3e6ee51c2fcea9810679",
          "css": "my-address",
          "code": 57514,
          "src": "custom_icons",
          "selected": true,
          "svg": {
            "path": "M994.5 17.7C988.8 11.8 980 10.1 972.5 13.6L11.3 454.7C3.6 458.3-0.9 466.5 0.2 474.9S7.8 490 16.2 491.4L447.3 563.7 496.6 971.1C497.7 979.6 504.1 986.4 512.6 987.9 513.7 988.1 514.8 988.2 515.8 988.2 523.1 988.2 529.9 984.1 533.2 977.4L998 39.8C1001.6 32.4 1000.2 23.6 994.5 17.7Z",
            "width": 1000
          },
          "search": [
            "myaddress-icon"
          ]
        }
    
    • 复制它的path值并将其插入到像这样的svg的路径中(在配置中将svg的宽度和高度值设置为宽度值):
    <svg width="1000" height="1000" xmlns="http://www.w3.org/2000/svg">
      <path d="M994.5 17.7C988.8 11.8 980 10.1 972.5 13.6L11.3 454.7C3.6 458.3-0.9 466.5 0.2 474.9S7.8 490 16.2 491.4L447.3 563.7 496.6 971.1C497.7 979.6 504.1 986.4 512.6 987.9 513.7 988.1 514.8 988.2 515.8 988.2 523.1 988.2 529.9 984.1 533.2 977.4L998 39.8C1001.6 32.4 1000.2 23.6 994.5 17.7Z"/>
    </svg>
    

    并将其保存为 .svg 文件。

    最后,您可以使用图像编辑器(我使用inkscape)打开它,并将矢量图像调整到视图框。

    你可以用它作为背景。

    【讨论】:

      【解决方案2】:
      1. 只需将图像 转换为
      2. 删除所有字形属性,如 unicode。
      3. 添加变换和缩放以实际以合适的尺寸显示元素

      您可以在路径元素上调整transform='scale()' 图标宽度的大小。
      我选择使用 200px 作为它的大小(大约)

      然后你可以在 url() 中使用它;

      .svgback {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><path transform='scale(0.2) translate(0 200)' d='m929 11v428q-18-20-39-37-149-114-238-188-28-24-46-38t-48-27-57-13h-2q-26 0-57 13t-48 27-46 38q-88 74-238 188-21 17-39 37v-428q0-8 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7-1 7-3 5-5 4-8 2h-822q-7 0-12-6t-6-12q0-94 82-159 108-85 224-177 4-2 20-16t25-21 25-18 28-15 24-5h2q11 0 24 5t28 15 25 18 25 21 20 16q116 92 224 177 30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z'/></svg>");
        width: 200px;
        height: 200px;
      }
      <div class="svgback"></div>
      
      <!-- Image data -->
      <!--svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
        <metadata>Copyright (C) 2015 by original authors @ fontello.com</metadata>
        <path transform='scale(0.2) translate(0 200)' d="m929 11v428q-18-20-39-37-149-114-238-188-28-24-46-38t-48-27-57-13h-2q-26 0-57 13t-48 27-46 38q-88 74-238 188-21 17-39 37v-428q0-8 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7-1 7-3 5-5 4-8 2h-822q-7 0-12-6t-6-12q0-94 82-159 108-85 224-177 4-2 20-16t25-21 25-18 28-15 24-5h2q11 0 24 5t28 15 25 18 25 21 20 16q116 92 224 177 30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z"
        />
      </svg-->

      【讨论】:

        猜你喜欢
        • 2014-03-24
        • 2012-07-16
        • 2019-04-20
        • 2017-01-10
        • 2017-06-10
        • 1970-01-01
        • 2012-02-29
        • 2016-03-17
        • 2012-11-24
        相关资源
        最近更新 更多