使用简单CSS操作SVG图标

本文是由三部分组成的系列文章的第二篇,该系列文章将展示Iconic将提供的新的图像学方法。


用CSS样式图标

智能图标引起了人们的极大兴趣,但样式可能是每天最有用的功能。 图标集涵盖了广泛的不同主题,但以单一视觉样式呈现。 如果不是最佳的话,这通常是适当的。 但是,在许多情况下,特定的图标可以并且应该具有特定的样式(颜色,笔触宽度或其他属性)。

静态图片无法进行样式设置(除非您针对每种特定的美感输出文件)。 图标字体通过允许简单的样式使我们更接近,但它不是细粒度的-意味着如果将图标涂成红色,则整个图标将是红色。 使用SVG,可以自由设置图标中各个元素的样式,从而开辟了全新的可能性。


一个图标,无限的可能性

SVG和CSS的结合是神奇的。 图像可以呈现完全不同的外观,经过定制的处理以及有趣的交互式过渡。 SVG标记提供对其中包含的所有元素的访问和控制。 这意味着可以使用CSS对灯泡图标进行“点亮”,可以对对比度图标进行样式设置以反映特定的对比度,而信号灯图标可以传达go信息 。 能够在元素级别进行样式设计为图标注入了新的活力-它们可以是真正独特的 。


图标主题

使用CSS对图标进行样式设置的下一个逻辑步骤是创建范围广泛的主题,以实现一致的美观。 我们对Iconic的关注重点之一就是揭露和应对围绕图标主题的挑战。 通常,设置一组图标的样式(除了简单地更改颜色之外)是一项艰巨的任务,它依赖于具有源矢量文件。 没有它们吗? 好吧,你不走运。

SVG图标可以解决此问题。 我之所以说“可以”,是因为很难始终如一地构造整个SVG图标集。 图标的设计和构建必须考虑主题,以使样式在整个集合中保持一致。 但是,当它起作用时,它看起来很棒。

我们整理了一个演示来展示图标主题。 它向您显示了将CSS规则应用于整个图标集时可以完成多少工作。

玩我们的图标主题演示。


有趣的用例

图标样式不仅可以进行任意颜色更改,而且可以做得更多。 这种方法使我们有机会提供另一个有价值的信息层。

提供简单的上下文信息

想一想您在界面中看到的所有显示上下文信息的图标。 只需考虑一下各种应用程序中的画笔或填充图标即可传达您将要绘制或填充的颜色。 设计成样式的SVG图标可以做到这一点。


样式状态

图标内的通信状态通常与使用颜色一样简单。 图标字体已经可以实现这一点,但是如果您想超越简单的颜色开关该怎么办? 这是SVG和CSS的另一个完美用例。 例如,让我们看一下WIFI信号图标。

这个怎么运作

注意:下面的示例仍然是概念验证原型。 以下代码都不是最终的代码,更不用说beta了。 我们仍处于此方法的研发阶段,并且我们知道仍有许多问题需要解决。 在Kickstarter活动结束后,我们将为这种方法的更具体的方向进行研究。

图标样式的机制非常简单。 如果您过去曾经使用过CSS(我们假设您曾经使用过),那么几乎没有什么要学习的。 这就是使这种方法如此出色的部分-使用您已经知道的技能和工具,它的功能非常强大。 SVG样式具有一组完全独特CSS规则 ,您需要学习这些CSS规则 ,但是这些概念非常简单,只需花很少的精力即可掌握。

真正的工作来自于设计和构造一个实际上可以样式化的图标。 就像智能图标一样 ,此方法依赖于将SVG直接注入到DOM中,并在语义上进行结构化以进行样式设置。 这远不只是将类添加到SVG图标中的每个元素(但这并不有害)。 启动图标进行样式设置仍然有些艺术形式。 我们非常确定这是一门科学,我们希望将来能更多地介绍该过程。 Iconic的目标是帮助使此过程清晰可重复,以便其他图标设计人员可以使他们的图标样式化。

让我们以设置WIFI信号图标的样式为例,以显示其各种状态。 您将很快看到它是多么平易近人。

查看实际代码

HTML

<img src="signal.svg" class="svg-inject" alt="signal" />

JS

$('.svg-inject').svgInject();

CSS

/*Strong signal*/

.iconic-signal.iconic-signal-strong .iconic-signal-base {

    fill:#569e26;

}

.iconic-signal.iconic-signal-strong .iconic-signal-wave * {

    stroke:#569e26;

}



/*Medium signal*/

.iconic-signal.iconic-signal-medium .iconic-signal-base {

    fill:#efc411;

}

.iconic-signal.iconic-signal-medium .iconic-signal-wave * {

    stroke:#efc411;

}

.iconic-signal.iconic-signal-medium .iconic-signal-wave-outer {

    opacity:.3;

    stroke-width:.5;

}



/*Weak signal*/

.iconic-signal.iconic-signal-weak .iconic-signal-base {

    fill:#b52808;

}

.iconic-signal.iconic-signal-weak .iconic-signal-wave * {

    stroke:#b52808;

}

.iconic-signal.iconic-signal-weak .iconic-signal-wave-outer ,

.iconic-signal.iconic-signal-weak .iconic-signal-wave-middle {

    opacity:.3;

    stroke-width:.5;

}



/*No signal*/

.iconic-signal.iconic-signal-none .iconic-signal-base {

    fill:#848484;

}

.iconic-signal.iconic-signal-none .iconic-signal-wave * {

    stroke:#848484;

    opacity:.3;

    stroke-width:.5;

}

SVG:signal.svg

<svg version="1.1" class="iconic iconic-signal" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="11.26px" height="8px" viewBox="0 0 11.26 8" enable-background="new 0 0 11.26 8" xml:space="preserve">

  <path class="iconic-signal-base" d="M6.337,7.247c-0.391-0.391-1.023-0.391-1.414,0l0.708,0.708L6.337,7.247z"/>

  <g class="iconic-signal-wave">

    <path class="iconic-signal-wave-inner" fill="none" stroke="#000000" stroke-miterlimit="10" d="M7.62,5.966c-1.098-1.098-2.88-1.098-3.977,0"/>

    <path class="iconic-signal-wave-middle" fill="none" stroke="#000000" stroke-miterlimit="10" d="M9.31,4.275C7.278,2.244,3.984,2.245,1.952,4.276"/>

    <path class="iconic-signal-wave-outer" fill="none" stroke="#000000" stroke-miterlimit="10" d="M10.9,2.684c-2.911-2.911-7.629-2.911-10.54,0"/>

  </g>

</svg>

还不错吧? 正确设置了SVG图标的样式后,其余的操作就会下坡!


使用SVG 2.0可能会更好

如您所见,您可以使用SVG和CSS做很多事情 ,但是仍然有一些限制。 我们遇到的主要问题之一是笔触对齐。 SVG 1.1中的所有笔触都是中心对齐的,这意味着笔触将在路径的每一侧平均分配。 由于种种原因,我们认为这不是图标设计的最佳选择,其中包括在增加笔触权重时可能出现的削波,以及适应中心对齐笔触的更复杂的绘制过程。

幸运的是,此问题已在SVG 2.0中修复-笔触现在可以居中对齐,内部对齐和外部对齐。 不幸的是 ,似乎SVG 2.0仍然遥遥无期。 我们希望Iconic将有助于激发人们对SVG的更多兴趣,并鼓励更快速的过程。


结论

Iconic的样式在Iconic中被忽略了一点,但是我们认为它是一种非常强大的技术。 我们坚信,将来它将对人们使用和查看图标的方式产生巨大影响。 这项技术的妙处在于该技术已经得到广泛支持-您所需要的只是可以利用它的图标。

Iconic的目标是帮助提供新的图像学方法。 我们还有很多要与您分享的内容,并期待与您分享下一批内容。

请考虑在Kickstarter上支持Iconic

翻译自: https://webdesign.tutsplus.com/articles/manipulating-svg-icons-with-simple-css--webdesign-15694

css 实现svg动态图标效果 【代码】css 实现svg动态图标效果。 阅读详情

相关推荐

svg、canvas、css3d实现数据可视化(伪3d)

前言: 这次项目用到了一些自定义的数据可视化组件,我把我做的部分抽出来几个典型做个汇总。 分为如下: 星球环绕旋转图 -- 方法一: svg:animateMotion+ animateTransform 方法二:css3d 地图 -- svg渲染 + div悬浮框 + js事件 二维饼图(风车图) -- canvas: dragCircle 、 stopDragging 三棱锥 -...

无聊者进来逛逛 8030

【CSS】SVG实战入门,svg画曲线,svg简单动画上手入门

- `` 根元素以像素为单位定义了整个图像的 width 和 height,还通过 xmlns 属性定义了 SVG 的命名空间, - `version` 属性可定义所使用的 SVG 版本, - `` 元素的内容可以被阅读器显示在标题栏上或者是作为鼠标指针指向图像时的提示, - `` 元素允许咱们为图像定义完整的描述信息, - ``标签 用来创建一个矩形,通过 `fill` 属性 把背景颜色设为黄色。 - ``标签 用来创建一个圆。

余浩的博客 5099

svg图标转字体图标

需要登录的网址 http://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 把svg图标制作成字体图标的步骤 第一步:右上角 点击阿里云图标登录,如下图: 第二步:点击上传,如下图: 弹出文件选择框,可以选择多个svg图片后,如下图: 点击“保留颜色并提交”按钮,进入下图:ppppppopopop ...

WoNiu_UU的专栏 2982

我至今没想到,我也能在 CSS 中实现 SVG 动画了

动画是网络中不可或缺的一部分。与互联网早期使用 GIF 图像不同,现在的动画更加细腻和高雅。设计师和前端开发者利用动画使网站看起来更加精致,不仅提升用户体验,还吸引用户关注重要的元素,以传达信息。本篇文章我们就来一起学习学习如何在 CSS 中实现 SVG 动画。

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 3014

HOW - 图形格式SVG及其应用(图标库&字体)

SVG 是可缩放矢量图形(Scalable Vector Graphics)的缩写。它是一种用于描述二维矢量图形的 XML 格式的标记语言。与像素图形(如 JPEG、PNG 等)不同,像素图形是基于像素的位图,SVG 使用的是基于几何形状的描述,因此它可以无限放大而不失真,适用于各种尺寸的显示设备,从小到移动设备的屏幕到大到高分辨率的显示器,甚至打印品质的输出。svg 常用与图标场景,那它们的实现原理你知道吗?比如svg字体,svg Sprite等技术。

weixin_58540586的博客 2032

字体图标的svg导入及寻找

字体图标的使用方法 —— icon-fonts 第一步:选择所需的字体图标,权威字体图标网站链接:https://icomoon.io点击打开链接 第二步:点击网站右上角处的红色按钮icnMoon App进行创建字体图标 第三步:我们可以直接选择已有的图标,具体使用不做过多解释,附教程链接http://blog.youkuaiyun.com/goodgirl199

前端工程师--则丸 7308

阿里图标库《保留彩色》

阿里图标库《保留彩色》

m0_73259961的博客 369

宽带波束形成

介绍了宽带波束形成器的时域滤波结构,以及波束响应的计算公式,宽带波束形成器的波束响应可表示为权重向量和方向向量的积

... 2490

svg图标的使用

svg图标是基于XML的矢量图描述语言,它是一个可缩放的矢量图形(缩放质量不会有所损失),可以通过css或者js进行操作。

哆来A梦没有口袋的博客 3290

利用VBA宏实现LightTools仿真数据自动化导出至Excel

本文详细介绍了如何利用VBA宏实现LightTools仿真数据自动化导出至Excel的完整流程。通过调用LTAPI接口,工程师可以自动执行仿真、抓取照度与光强等数值数据、捕获并粘贴仿真图像,从而将重复性工作自动化,显著提升光学设计工作的效率和准确性。

weixin_28314575的博客 502

从零到一:RF-DETR如何通过神经架构搜索重塑实时目标检测的边界

RF-DETR通过创新的权重共享神经架构搜索(NAS)机制,重新定义了实时目标检测的技术边界。这项技术在COCO等基准测试中表现卓越,成为首个AP超过60的实时检测器,同时保持跨领域稳定性和高效推理速度。RF-DETR的动态架构调整能力使其能够适应从嵌入式设备到云端服务器的各种硬件环境,为工业质检、自动驾驶等场景提供灵活解决方案。

weixin_29061531的博客 469

svg配合css3动画_如何使用CSS制作节日SVG图标动画

正是这个季节,因此在本教程中,我将逐步创建一些CSS动画,以假日为主题的SVG图标。 Iconmelon上有一些很棒的图标,该网站上有许多免费的矢量图标集,可让您尽其所能 。 我使用的图标来自设计师Sam Jones 。 因此,为自己准备一杯蛋酒,将笔记本电脑拉到yule日志上,让我们开始吧! SVG和网络 如果您对在网络上使用SVG感兴趣,则图标是一个不错的起点。 SVG灵活,独立于分...

Web design 教程小屋 592

基于云平台的ATS系统微服务架构方案研究

在当前智慧地铁的升级转型过程中,城市轨道交通ATS系统面临着稳定性差、运维方 式繁琐和故障应急处理效率低等问题。为此,提出一种基于云平台的ATS系统微服务架构方案; 研究了ATS系统在云平台上的微服务总体架构、ATS应用的微服务划分和设计、容器部署方式 及通信交互模式,可实现系统松耦合和易扩展,达到节约计算资源、提高系统稳定性和运营效 率的目的

mi_lan1的博客 966

从字体图标到svg——Web图标发展史以及iconfont矢量图标库的使用

要注意的是,这并没有在根本上改变 web 图标渲染的方式,底层依然是基于前文提到的各种方案。在浏览器中使用的是图形渲染,所以就是实实在在的路径。:icon-font 图标通过伪元素插入,依赖于 line-height , vertical-align,letter-spacing , word-spacing ,字体字形设计(它的四周有留白吗?范围内)并为其绘制字形,同时生成好一堆预定义的图标名 class name,通过 web font 的方式加载资源,通过对应的 class name 来引用图标。

m0_66584716的博客 2253

2026年数学建模国赛论文排版规范:Word与LaTeX终极对比及模板

提前演练:不要等到比赛开始才第一次使用排版工具。至少在赛前一个月完成1-2篇模拟论文的全流程排版练习。建立检查清单:基于国赛规范制定排版检查清单,在提交前逐项核对——公式编号连续?图表引用准确?参考文献完整?页数不超限?善用模板但不止于模板:模板提供的是起点而非终点。根据自身需求调整宏包配置和样式参数,理解每一行配置的含义。关注评审体验:从评委的视角审视论文——重点内容是否突出?逻辑结构是否清晰?视觉层次是否合理?备份与容错:无论使用何种工具,建立多级备份机制。本地、云端、U盘各存一份,且定期保存历史版本。

YOLO 210

【反封禁策略】集成 Undetected-Chromedriver:让 Browser-Use 绕过 Cloudflare 五秒盾

摘要:AI Agent如何突破Cloudflare检测的实战指南 本文针对AI Agent在Cloudflare检测下频繁受阻的问题,深入分析了undetected-chromedriver的工作原理与局限性。文章指出,Cloudflare 2026年的检测体系已升级为"浏览器指纹+IP信誉+协议指纹+行为模式"的多维交叉验证,单一伪装方案难以奏效。 核心内容包括: undetected-chromedriver的三层补丁体系解析 v2与v3版本的适用场景对比 两种Browser-Use集成方案:Selen

ZDQ58818的博客 284

HTML5如何使用SVG

代码优化永远是程序员亘古不变的需求,而合理的利用SVG图片来代替部分PNG/JPG等格式的图片则是前端优化重要的一环,既然是优化,那我们先来看看SVG图片都有哪些优势: SVG 可被非常多的工具读取和修改(比如记事本) SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。 SVG 是可伸缩的 SVG 图像可在任何的分辨率下被高质量地打印 SVG 可在图像质量不下降的情...

聚风阁 4万+

【华为OD机试真题 2025B卷】737、统计监控器、需要打开多少监控器 | 机试真题+思路参考+代码分析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025B卷】737、统计监控器、需要打开多少监控器 | 机试真题+思路参考+代码分析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为

KJ.JK 715

把svg图标制作成字体图标_SVG图标FTW

把svg图标制作成字体图标 A lot of great methodologies and principles arose making our CSS more and more modular, structured and flexible. But think about your icons. Using raster graphics for icons m...

culiao9310的博客 557

基于R-CNN深度学习的生活垃圾检测与分类系统:数据集、模型和UI界面的完整实现

我们将使用一个公开的垃圾分类数据集来训练我们的模型。一个常见的数据集是TACO数据集(Trash Annotations in Context),该数据集包含多种垃圾类别,适用于垃圾分类任务。TACO数据集中的图像标注了垃圾的类别以及其在图像中的位置,适合用于目标检测任务。图片数据:每张图片中包含不同种类的垃圾。标签文件:每个图像有相应的标签文件,标注了图像中垃圾的类别、位置(通常为边界框坐标)等信息。dataset/images/image1.jpgimage2.jpg......其中,

YOLO 1102

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Vite SVG Loader 完整使用指南:让SVG图标管理变得简单高效

在现代前端开发中,SVG图标因其矢量特性、高清晰度和样式可控性而备受青睐。然而,如何在Vite项目中优雅地管理和使用SVG文件,却是一个让许多开发者头疼的问题。今天,我们将深入探讨Vite SVG Loader这个强大的工具,看看它如何让SVG图标管理变得简单高效。 ## 为什么选择Vite SVG Loader? 传统的SVG使用方式往往面临诸多挑战:文件体积大、样式难以控制、代码重复冗余。

gitblog_00641的博客 997

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在 Web 开发中使用 SVG 图标的 7 种方法

方法优势限制内联 SVG高度可定制,支持 CSS 样式和交互代码量较大,复杂页面中多次使用时冗余<img>标签简单易用,适合静态图标无法直接通过 CSS 修改图标样式<object>标签支持交互,保留内部结构,可以用 JS 操控使用较复杂,兼容性较差适合背景图标,代码简洁无法修改图标的颜色和形状SVG 图标字体(如 Font Awesome)易于使用,响应式,统一管理多个图标只能控制大小和颜色,修改图标较麻烦<use>元素可以重用 SVG 图标,灵活控制样式。

罐装旺仔的博客院子 2286

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

svg symbol css,Vue项目使用symbol的方式引入svg图标

还在使用图片或雪碧图或iconClass字体图标嘛,都已经过时啦,时代变迁我们应顺势而为。=========同样这篇文章也是来自于群里的群主前端大佬,博主跟着学习,同时分享给大家.有问题就进群来找群主咨询.先说下图标使用的历史进程(心急使用的可以跳过)第一代,耳熟能详的就是切片切图下来的图片做图标使用,每当用做active状态或hover之类的时候需要切换图片路径,操作麻烦不说,也比较耗费性能不便...

weixin_42398843的博客 981

react前端显示图片_在 React 中使用 SVG 图标组件

SVG 很酷,它们能放大放小。那么 SVG 的优点是什么?SVG 或可缩放矢量图形是基于 XML 的格式图像格式,可以在保持图像质量的同时缩放到任何大小。因此,当你需要根据需要调整大小的图像时,SVG 是可行的方法。它们基本上是 XML 文档,因此与其他图像格式相比,它们的文件大小也很小。它们也是有效的 XML 元素,可以使用 CSS 进行操作。所以在 SVG 上改变颜色和笔画都可以通过 CSS ...

weixin_39825941的博客 2288

vue 导入 iconfont 中的 svg 图标

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。这种用法其 实是做了一个svg的集合,与另外两种相比具有如下特点: - 支持多色图标了,不再受单色限制。 - 通过一些技巧,支持像字体那样,通过font-size,color来调整样式。 兼容性较差,支持 ie9+,及现代浏览器。 - 浏览器渲染svg的性能一般,还不如png。

萝卜砸大坑 9万+

evershop图标系统:SVG图标与字体图标使用指南

evershop作为现代化的Node.js电商平台,采用了混合图标系统策略,结合了SVG内联图标和Heroicons字体图标库。这种设计既保证了图标的灵活性,又提供了良好的开发体验。本文将深入解析evershop的图标系统架构、使用方法和最佳实践。 ## 图标系统架构 ### 核心技术栈 evershop的图标系统基于以下技术构建: | 技术 | 版本 | 用途 | |------|---...

gitblog_00584的博客 770
上一篇: 自测视网膜图_自适应的视网膜Google Map Images
下一篇: css3禅意花园脚本_如何创建无脚本CSS3工具提示
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值