首页 > 其他分享 >html svg如何写,如何自己写、实现

html svg如何写,如何自己写、实现

时间:2024-07-14 15:29:52浏览次数:11  
标签:颜色 定义 svg 如何 html SVG 属性 fill

SVG(Scalable Vector Graphics)是一种用于描述二维矢量图形的 XML 格式标记语言,它可以被浏览器直接渲染。SVG 图形具有良好的可伸缩性和清晰度,非常适合用于图标、图表、地图等应用场景。以下是编写 SVG 的基本语法和示例:

1. SVG 基本结构

SVG 图形可以直接写在 HTML 文件中的 <svg> 元素内部,或者作为一个独立的 .svg 文件。以下是一个简单的 SVG 示例:

<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>

在这个例子中:

  • <svg> 元素定义了 SVG 图形的容器。
  • widthheight 属性定义了 SVG 图形的宽度和高度。
  • xmlns 属性指定了 XML 命名空间。
  • <circle> 元素定义了一个圆形,通过 cxcy 属性指定圆心坐标,r 属性指定半径,strokestroke-width 属性定义了边框的颜色和宽度,fill 属性定义了填充颜色。

2. SVG 基本形状

SVG 支持多种基本形状,如 circlerectlinepolylinepolygon 等,每种形状有自己特定的属性。例如,rect 可以用来绘制矩形:

<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
  <rect x="10" y="10" width="80" height="80" stroke="black" stroke-width="2" fill="blue" />
</svg>

3. SVG 路径(Path)

使用 <path> 元素可以创建复杂的形状和线条。路径由一系列的命令和参数组成,如 M(移动到)、L(直线到)、C(三次贝塞尔曲线)等。以下是一个例子:

<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
  <path d="M10 10 L90 90" stroke="black" stroke-width="2" />
</svg>

在这个例子中,d 属性定义了路径数据,M10 10 表示移动到 (10, 10) 点,L90 90 表示画一条直线到 (90, 90) 点。

4. SVG 文本

可以使用 <text> 元素在 SVG 中添加文本:

<svg width="200" height="50" xmlns="http://www.w3.org/2000/svg">
  <text x="10" y="30" font-family="Arial" font-size="20" fill="black">Hello, SVG!</text>
</svg>

在这个例子中,xy 属性定义了文本的位置,font-familyfont-size 属性定义了字体和字号,fill 属性定义了文本颜色。

5. SVG 高级特性

除了基本形状和路径外,SVG 还支持渐变、滤镜、动画等高级特性,使得 SVG 图形能够实现更复杂的效果和交互。

总结

SVG 是一种强大的图形描述语言,通过 XML 格式描述二维矢量图形。它支持基本形状、路径、文本等元素,并且具有良好的可伸缩性和浏览器兼容性。通过合理利用 SVG,可以实现各种图形和动画效果,适用于 Web 开发中的多种场景。

svg画一个箭头的纯色图标案例

可以使用 SVG 来画一个简单的箭头图标。下面是一个例子,画一个指向右边的箭头,颜色为红色:

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 24 24">
  <path fill="red" d="M5 12l7-8v6h10v4h-10v6z"/>
</svg>

解释:

  1. <svg> 元素定义了 SVG 图形的容器,设置了宽度、高度和视口框(viewBox)。

    • xmlns="http://www.w3.org/2000/svg" 声明了 SVG 的命名空间。
    • width="100" height="100" 设置了 SVG 图形的宽度和高度。
    • viewBox="0 0 24 24" 定义了 SVG 图形内容的坐标系,这里是从 (0,0) 到 (24,24)。
  2. <path> 元素用来定义路径,通过 d 属性来描述路径数据。

    • fill="red" 设置路径的填充颜色为红色。
    • d="M5 12l7-8v6h10v4h-10v6z" 描述了箭头的形状。
      • M5 12 表示移动到 (5, 12) 点。
      • l7-8 表示画一条从当前位置开始的相对直线到 (12, 4) 点。
      • v6 表示画一条垂直线(垂直增量)到 (12, 10) 点。
      • h10 表示画一条水平线(水平增量)到 (22, 10) 点。
      • v4 表示画一条垂直线(垂直增量)到 (22, 14) 点。
      • h-10 表示画一条水平线(水平减量)到 (12, 14) 点。
      • v6 表示画一条垂直线(垂直增量)到 (12, 20) 点。
      • z 表示闭合路径。

这段路径数据描述了一个简单的箭头形状,指向右边,并填充了红色。你可以根据需要调整 widthheightviewBoxfilld 属性来定制箭头的大小、颜色和方向。

css如何修改svg纯色图标

要修改 SVG 纯色图标的颜色,可以通过 CSS 的 fill 属性来实现。fill 属性控制 SVG 元素的填充颜色,适用于大多数 SVG 图形元素,如 <path><circle><rect> 等。

方法一:直接在 SVG 元素内部定义颜色

最简单的方式是直接在 SVG 元素内部定义 fill 属性来设置颜色,如下所示:

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 24 24">
  <path fill="red" d="M5 12l7-8v6h10v4h-10v6z"/>
</svg>

在这个例子中,<path> 元素的 fill 属性设置为 red,因此箭头图标被填充为红色。

方法二:通过 CSS 修改 SVG 的填充颜色

如果 SVG 是作为外部文件或者在 HTML 中嵌入,并且希望通过 CSS 来控制颜色,可以使用 fill 属性来覆盖内部的填充颜色。例如,假设 SVG 文件名为 arrow.svg,可以这样使用:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>SVG Color Example</title>
  <style>
    .svg-icon {
      width: 100px;
      height: 100px;
      fill: blue; /* 设置填充颜色为蓝色 */
    }
  </style>
</head>
<body>
  <svg class="svg-icon">
    <use xlink:href="arrow.svg#icon"></use>
  </svg>
</body>
</html>

在这个例子中:

  • .svg-icon 类的 fill 属性设置为 blue,这会覆盖 SVG 内部的 fill 属性。
  • <use> 元素用于在 HTML 中嵌入外部 SVG 文件,通过 xlink:href 属性引用文件,并使用 #icon 来指定 SVG 文件中的图标 ID。

注意事项:

  • SVG 文件内部的 fill 属性和 CSS 中的 fill 属性都可以控制颜色,但 CSS 中的样式会优先生效。
  • 使用外部 SVG 文件时,确保浏览器支持 <use> 元素和 xlink:href 属性。
  • 可以在 CSS 中针对不同的类或者选择器来定义不同的填充颜色,从而动态地控制 SVG 图标的颜色。

通过以上方法,你可以灵活地使用 CSS 控制 SVG 纯色图标的填充颜色,实现不同样式和主题的展示需求。

png转svg实现

https://www.adobe.com/cn/express/feature/image/convert/png-to-svg
https://png2svg.com/zh/

标签:颜色,定义,svg,如何,html,SVG,属性,fill
From: https://www.cnblogs.com/jocongmin/p/18301619

相关文章

  • text prompt如何超过77个词
    【深度学习】sdwebui的token_counter,update_token_counter,如何超出77个token的限制?对提示词加权的底层实现_prompt中token权重-CSDN博客文章浏览阅读1.6k次,点赞26次,收藏36次。文章探讨了如何在StableDiffusionProcessing中处理超过77个token的提示,涉及token_counter的实现、文......
  • MySQL数据类型,如何选择数据类型
    数据类型一、整数类型标准SQL支持INTEGER和SMALLINT两种整数类型,另外还扩展支持TINYINT、MEDIUMINT、BIGINT。二、浮点数类型和定点数类型浮点数类型包括单精度(FLOAT)和双精度(DOUBLE),定点数类型(DECIMAL)。三、CAHR类型和VARCHAR类型四、TEXT类型和BLOB类型TEXT和BLOB类......
  • Ubuntu如何设置中文系统环境
    最近又重新下载Ubuntu了,在这里留下个脚印,做个记录步骤一:安装中文语言包打开终端(Terminal),分别输入以下命令行sudoaptupdatesudoapt-getinstalllanguage-pack-zh-hans步骤二:设置中文环境1.添加中文语言sudodpkg-reconfigurelocales用方向键往下翻找,直到看见zh_CN......
  • FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址
    ​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。SRS是一......
  • 如何恢复VMFS存储卷中的数据
    一、评估与准备评估损失:首先,需要确定数据损失的程度和范围,了解哪些虚拟机受到了影响。备份现有数据:在进行任何恢复操作之前,应尽可能备份现有的VMFS卷和受影响的虚拟机文件,以防恢复过程中数据进一步损坏。准备恢复环境:建立一个安全、可靠且与生产环境隔离的恢复环境,以便在其......
  • 什么是Nacos???Nacos是干啥的???如何使用Nacos???
    目录1.引言:2.服务调用3.注册中心原理3.1.服务注册者(ServiceRegistrar)3.2.服务消费者(ServiceConsumer)3.3注册中心(ServiceRegistry)4.Nacos注册中心5.服务注册5.1.添加依赖5.2.配置Nacos5.3.启动服务实例6.服务发现6.1.引入依赖6.2配置Nacos地址6.3.发现并......
  • 如何减少RAID数据丢失风险
    不要更改盘序不要运行磁盘检查程序如果有硬盘损坏,不要继续运行系统不要重新配置RAID不要rebuild如何减少RAID数据丢失的风险在RAID阵列中,数据分布在所有的硬盘上。从数据恢复看,这意味着任何一个磁盘上都不存在完整的文件,文件被分块交叉存储在整个阵列上。因此需要从所有硬盘......
  • 单个进程描述符最大是65535,那么百万级并发是如何实现的?
    在操作系统中,单个进程描述符或单个TCP连接的最大数量限制并不直接等同于服务器的并发处理能力。实际上,服务器实现百万级并发的能力是通过多种技术和策略来实现的。TCP连接数量并非严格受限于端口数量(即65535个)。每个TCP连接由五元组(源IP、源端口、目的IP、目的端口、协议)唯一......
  • 如何避免raid掉阵
    一、硬件选择与配置选用高质量硬件:确保RAID阵列中的硬盘、控制器等硬件组件有良好的质量和稳定性。使用经过兼容性测试的硬件组合,以减少因硬件不兼容导致的RAID掉阵风险。合理配置RAID级别:根据数据的重要性、性能需求和预算选择合适的RAID级别。例如,对于关键数据,可以选择RAID......
  • Java进阶之路66问 | 对接口签名是怎么理解的?如何防止接口重放攻击?
    接口签名为什么需要接口签名?现在越来越多的公司以API的形式对外提供服务,这些API接口大多暴露在公网上,所以安全性就变的很重要了。最直接的风险如下:非法使用API服务。(收费接口非法调用)恶意攻击和破坏。(数据篡改、DOS)因此需要设计一些接口安全保护的方式来增强接口......