❤ svg篇

❤ svg篇

1、认识和介绍

对于svg的系统描述 www.runoob.com/svg/svg-tut...

先来看看 在 HTML 页面之中svg的介绍


SVG 文件可通过以下标签嵌入 HTML 文档:<img>、<object> 或者 <iframe>

SVG 的代码可以直接嵌入到 HTML 页面中,或您可以直接链接到 SVG 文件。


2、使用

(1) 使用 < img> 标签

通过 <img> 标签可以将 SVG 图像作为图片嵌入到 HTML 页面中,可以使用 src 属性指定 SVG 文件的路径,也可以设置 width 和 height 属性来指定图片的宽度和高度。

语法:

js 复制代码
<img src="example.svg" alt="SVG Image" width="200" height="200">

我们新建一个文件然后尝试一下

代码部分也非常的简单

js 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
   <img src="./404.svg" alt="SVG Image" width="200" height="200">
</body>
</html>

我们尝试控制与一下大小

js 复制代码
<img src="./404.svg" alt="SVG Image" width="100" height="100">
<img src="./404.svg" alt="SVG Image" width="50" height="50">
<img src="./404.svg" alt="SVG Image" width="10" height="10">

最后我们查看的效果:

更改颜色:这里我们就只能使用svg的类型样式了(必须得svg内部没有填充色得时候才可以)

js 复制代码
svg{
    background: chartreuse;
    color: #fff;
}

接下来我们想更改一下单独每个的颜色,很可惜,这种方法办不到

优点:简单快捷,仅仅img就可以使用

缺点:很明显,无法更改颜色

(2) 使用 <object> 标签

使用 <object> 标签用于将外部资源嵌入到HTML页面中,可以使用 data 属性指定 SVG 文件的路径,type 属性指定资源的 MIME 类型。

支持 SVG 的浏览器会直接显示 SVG 图像,不支持的浏览器会显示替代内容。

也就是我们可以拿这个来进行兼容,同时,注意是拿data 属性来指定 SVG 文件的路径的!

简单进行一下使用:

js 复制代码
  <!-- 第二种方式 -->
<object data="./404.svg" type="image/svg+xml" width="200" height="200">
      Your browser does not support SVG
</object>

预览跟上面差不多,这里我们就不展示预览了。

  • 更改颜色

跟上面差不多,很显然,这种更改颜色也是不太行

(3) 使用 <iframe> 标签

<iframe> 标签用于在 HTML 页面中嵌入另一个HTML文档。可以使用 src 属性指定 SVG 文件的路径,并设置 widthheight 属性来指定 iframe 的宽度和高度。

语法:

arduino 复制代码
<iframe src="example.svg" width="200" height="200"></iframe>

这种方式更改颜色也是不便利,直接下一种

(4) 直接在 HTML 嵌入 SVG 代码

在 HTML 页面中直接嵌入 SVG 代码,SVG 代码可以放置在 <body> 标签中或其他合适的位置。

这种方式使得 SVG 图像与 HTML 内容混合在一起,可以直接在 HTML 页面中编辑和调整 SVG 图像

这里介绍和告诉我们很明确啊,可以直接在 HTML 页面中编辑和调整 SVG 图像

js 复制代码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
   <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>

预览一下,直接就是一个圆!

也就是我们上面的也可以写成

js 复制代码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    <img src="./404.svg" alt="SVG Image" width="50" height="50">
</svg>

(5)链接到 SVG 文件

我们看看第五种:可以用 <a> 标签链接到一个 SVG 文件:

js 复制代码
<a href="circle1.svg">查看 SVG 文件</a>

结果: 查看 SVG 文件


(6) 使用 CSS 背景图

通过 CSS 的 background-image 属性,可以将 SVG 图像作为背景图嵌入到 HTML 元素中。这种方法适用于需要在 CSS 中控制背景图样式的情况。

这里简单尝试一下试试:

js 复制代码
.svg-bg { width: 200px; height: 200px; background-image: url('circle1.svg'); background-size: cover; }

尝试一下 >>

这里扩张一下,是不是各种动态背景,动画背景,小人跳动啥的,你都会了呢?

3、进阶使用

了解完了svg的基础使用,这里我们看看具体的使用如何使用呢

(1)fill 属性

先来看看fill这个SVG属性的含义:更改填充颜色

  • SVG 的 fill 属性

用于定义填充颜色,它可以接受多种类型的值。以下是常见的 fill 属性可选值:

c 复制代码
颜色值:可以直接指定颜色的名称(例如 "red"、"blue")或者十六进制颜色值(例如 "#FF0000")作为填充颜色。

URL:可以使用 URL 来引用一个图像,该图像将被用作填充图案。

渐变:可以使用线性渐变(<linearGradient>)或径向渐变(<radialGradient>)来创建渐变填充效果。

默认值:none 表示无填充,即不显示填充效果。

CSS 变量:如果你的 SVG 在 HTML 中使用了 CSS 变量,你也可以将 CSS 变量作为 fill 属性的值。

看来fill为我们提供了强大的内置属性,也就是我们控制svg其实就是控制fill

(2)使用 CSS 的 fill 属性来设置 SVG 的填充颜色

  1. 内联 SVG: SVG 图标是内联在 HTML 中的,你可以直接在 SVG 元素内部使用 style 或 fill 属性来设置填充颜色。
js 复制代码
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" style="fill: red;">
<!-- SVG 图标的路径或其他内容 -->
</svg>

使用 CSS 来设置样式
<style>
  .svg-icon {
    fill: red;
  }
</style>

<svg class="svg-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
  <!-- SVG 图标的路径或其他内容 -->
</svg>

(3)外部 SVG 文件

js 复制代码
使用 CSS 来为 SVG 元素设置填充颜色
<!-- 在 HTML 中引入 SVG 文件 -->
<object type="image/svg+xml" data="icon.svg" class="svg-icon"></object>

/* CSS 文件中设置填充颜色 */
.svg-icon {
  fill: red;
}

(4)currentColor 关键字

使 SVG 图标的填充颜色能够跟随字体颜色而改变,你可以使用 CSS 的 currentColor 关键字 currentColor 表示当前元素的文本颜色。通过将 SVG 图标的填充颜色设置为 currentColor,它将自动继承其父元素(通常是文本元素)的颜色

js 复制代码
fill="currentColor"

到这里相信你对于svg的使用已经轻松上手啦!

相关推荐
并不会43 分钟前
常见 CSS 选择器用法
前端·css·学习·html·前端开发·css选择器
悦涵仙子1 小时前
CSS中的变量应用——:root,Sass变量,JavaScript中使用Sass变量
javascript·css·sass
衣乌安、1 小时前
【CSS】居中样式
前端·css·css3
兔老大的胡萝卜1 小时前
ppk谈JavaScript,悟透JavaScript,精通CSS高级Web,JavaScript DOM编程艺术,高性能JavaScript pdf
前端·javascript
低代码布道师1 小时前
CSS的三个重点
前端·css
耶啵奶膘2 小时前
uniapp-是否删除
linux·前端·uni-app
王哈哈^_^4 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie4 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic5 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿5 小时前
webWorker基本用法
前端·javascript·vue.js