【发布时间】:2022-02-08 07:06:24
【问题描述】:
我希望建立一个网站,只需更改css即可轻松更改图标颜色。我得到了一组 svg 文件形式的自定义图标。
我已经尝试过背景颜色、滤镜等(请参阅https://codesandbox.io/s/exciting-montalcini-xfufu?file=/index.html)。
最好使用哪种技术?我应该从 SVG 生成字体吗?
【问题讨论】:
标签: css svg svg-filters
我希望建立一个网站,只需更改css即可轻松更改图标颜色。我得到了一组 svg 文件形式的自定义图标。
我已经尝试过背景颜色、滤镜等(请参阅https://codesandbox.io/s/exciting-montalcini-xfufu?file=/index.html)。
最好使用哪种技术?我应该从 SVG 生成字体吗?
【问题讨论】:
标签: css svg svg-filters
首先,打开您的 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。)
【讨论】:
生成自定义图标字体将是最好的主意,因为您在 HTML 标记中拥有最快的实现,并且不必再关心再次嵌入图像。
https://icomoon.io 是一个很棒的生成器,当您正在寻找帮助软件来生成您的字体时。
【讨论】: