【问题标题】:Color changeable SVG?颜色可变的SVG?
【发布时间】:2022-02-08 07:06:24
【问题描述】:

我希望建立一个网站,只需更改css即可轻松更改图标颜色。我得到了一组 svg 文件形式的自定义图标。

我已经尝试过背景颜色、滤镜等(请参阅https://codesandbox.io/s/exciting-montalcini-xfufu?file=/index.html)。

最好使用哪种技术?我应该从 SVG 生成字体吗?

【问题讨论】:

    标签: css svg svg-filters


    【解决方案1】:

    首先,打开您的 SVG 文件并更改 .cls-1 路径的样式:

    .cls-1 { fill: currentColor; }
    

    现在将 SVG 放入您的 HTML 代码中。盾牌的颜色将遵循当前的字体颜色。 <use> 标签将允许您轻松复制它。只需确保使用 style="display: none;" 隐藏 SVG 的原始实例即可。

    svg {
      width: 42px;
      height: 50px;
    }
    
    .green-icon { color: green; }
    .red-icon { color: red; }
    .blue-icon { color: blue; }
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 768.42 907.1" style="display: none;"><defs><style>.cls-1{fill:currentColor;}.cls-2{fill:#fff;}</style></defs><g id="Livello_2" data-name="Livello 2"><g id="Layer_1" data-name="Layer 1"><path class="cls-1" d="M766.27,141.2c-157.6,0-279.1-44.3-382.5-141.2C282,97.7,160.47,141.2,2.07,141.2c0,253.7-53.4,618.2,382.5,765.9C820.47,758.6,766.27,394.9,766.27,141.2Z"/><path class="cls-2" d="M449.87,436.6a43.42,43.42,0,0,1,28.9-7.1l113.9-114-63.8-63.8L415,365.7a42.67,42.67,0,0,1-7.4,29.2Z"/><polygon class="cls-2" points="251.17 575.4 246.97 571.3 225.37 588.8 188.97 646.1 198.37 655.4 255.67 619 273.17 597.5 268.97 593.3 341.47 520.8 323.47 503.1 251.17 575.4"/><path class="cls-2" d="M350.27,374.5a88.86,88.86,0,0,0-108.9-109.8l50.4,50.3-13.2,49.3-49.4,13.2-50.3-50.3a88.86,88.86,0,0,0,113.5,107.7l.3.3,207.1,207.1a42,42,0,0,0,59.4-59.4Zm182.8,261a16,16,0,1,1,16.1-16A16,16,0,0,1,533.07,635.5Z"/></g></g></svg>
    
    <svg class="green-icon" viewBox="0 0 768.42 907.1"><use href="#Layer_1"></use></svg>
    <svg class="red-icon" viewBox="0 0 768.42 907.1"><use href="#Layer_1"></use></svg>
    <svg class="blue-icon" viewBox="0 0 768.42 907.1"><use href="#Layer_1"></use></svg>

    (此解决方案基于 CSS Tricks 中的 this article。)

    【讨论】:

      【解决方案2】:

      生成自定义图标字体将是最好的主意,因为您在 HTML 标记中拥有最快的实现,并且不必再关心再次嵌入图像。

      https://icomoon.io 是一个很棒的生成器,当您正在寻找帮助软件来生成您的字体时。

      【讨论】:

        猜你喜欢
        • 2022-01-01
        • 2016-01-16
        • 2019-12-05
        • 2021-11-19
        • 1970-01-01
        • 2013-12-19
        • 2020-05-10
        • 1970-01-01
        • 2015-01-29
        相关资源
        最近更新 更多