首页 > 其他分享 >初识SVG

初识SVG

时间:2023-03-07 17:32:21浏览次数:58  
标签:SVG svg 初识 标签 html png 图片

解决网站图标问题的最佳方案——SVG!

SVG 是一种基于 XML 语法的图像格式,英文全称是: Scalable Vector Graphics,即可缩放矢量图,是 W3C 的一项建议。

我们用手机拍摄的照片,图片格式一般都是基于像素处理的,图片放大会模糊失真。SVG 则是属于对图像的形状描述,所以它本质上是文本文件,体积较小,且不管放大多少倍都不会失真。

我们来真实的体验一下。

打开阿里巴巴矢量图标库网站,

初识SVG_当前目录

在素材库菜单里选择矢量插画库,选择任意一个主题点击进去,鼠标划入图标,点击下载按钮,在弹框中分别点击 SVG 下载和 PNG下载,这个图标的两种格式文件就下载到本地电脑了,将图片拷贝到我们的目录下。现在,它们可以当做图片插入到网页中了。

初识SVG_html_02

打开编辑器,新建一个 svg-demo.html 文件。补全基础代码,在 body 里添加一个 img 标签,属性 src 的资源路径设置为当前目录的 png 图片名,width 宽度设置为 100, height 高度也设置为 100。复制另一个 img 标签,src 的值修改为当前目录的 svg 图片名。保存文件。

在浏览器中打开网页,两张图片显示了。目前看,两张图片没有什么区别,但当我们把两张图片逐渐放大时,就会发现,png 格式的图片边界模糊了,svg 格式的图片边界依然清晰。

初识SVG_SVG_03

初识SVG_html_04

svg 图片怎么制作呢?

返回编辑器,我们在 VSCode 里打开 png,可以直接预览图片,其实 png 图片是基于像素处理的,我们不能在 VSCode 里编辑。

再打开 svg 图片,我们发现 svg 图片是用类似 html 代码绘制出来的。

因此,我们可以通过 html 元素来绘制 svg 图片!可以使用 svg 标签来实现。

svg 标签是 svg 图形的一个容器,它是一个双标签,基本语法是:尖角号 svg,尖角号 /svg。里面包含很多子标签,用于绘制各种图形。

svg 也可以理解为绘制图形的画布,它有两个重要的属性,width,定义画布的宽度,height,定义画布的高度,它们值都是数字。

再次打开 svg-demo.html 文件,在图片下方添加 br 标签。再添加一个 svg 标签,给 svg 定义属性 width 等于 800,height 等于 600。保存。

回到浏览器,刷新,按键盘 F12,打开开发者工具,在 elements 页签下,点击 svg 元素,我们看到,一个800 乘 600 的画布就做好了。

标签:SVG,svg,初识,标签,html,png,图片
From: https://blog.51cto.com/u_14573321/6106361

相关文章

  • 一张svg自适应页面H5项目
    做一个自适应的图片,海报,做成简单的自适应网页如下<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"> <metahttp-equiv="X-UA-Compatible"conten......
  • 初识C++
    写在前面这是我第一次接触到C++,之前对它的大名可谓是如雷贯耳.这两天有人问我学习C++的感觉怎么样?对此我想说,很难.C++的细节很多,要求我们比学习C语言更加细心,我不是没......
  • 初识VUE响应式原理
    作者:京东零售吴静自从Vue发布以来,就受到了广大开发人员的青睐,提到Vue,我们首先想到的就是Vue的响应式系统,那响应式系统到底是怎么回事呢?接下来我就给大家简单介绍一下Vue......
  • 跟着鹏哥学C—初识C语言3
    1.单目运算符!逻辑反操作符-负值+正值&取地址sizeof操作数的类型长度(以字节为单位)~对一个数的二进制按位取反--前置、后置++前置、后置*间接访问操作符(解引用操作符)(类型)强制......
  • 跟着鹏哥学C—初识C语言
    1.常见关键字auto  break  case  char  continue default  do  double  else  enum extern   float  for  goto  if  int ......
  • Map初识
    1.Map集合1.1Map集合概述和特点【理解】Map集合概述interfaceMap<K,V>K:键的类型;V:值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复......
  • 初识Layering Sequence
    一、为什么需要LayeringSequence随着集成电路技术的发展,芯片的复杂度日益提升。对验证而言,为了更好地应对这种复杂性,一方面是提高各个级别的可移植性和复用性,另一方面是......
  • 向chatGPT请教SVG中 元素defs 与symbol的使用
    NXMXL请帮我解释一下.在svg中,symbol和defs的相同的和不同点chatGPT<symbol>和<defs>都是SVG中用于定义可重复使用的元素的标签,但它们在用法和效果上有一些不同点:用法......
  • 跟着鹏哥学C—初识C语言2(编程题)
    编程题:求两个数的较大值题目内容:写一个函数求两个数的较大值分析:比较两个数的大小,然后输出较大的那个数我看到这个题的时候,想的是将两个数进行相减x-y,得到的结果,如果大于0,则......
  • 跟着鹏哥学C—初识C语言2
    1.选择语句(if语句)#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){intinput=0;printf("你会C语言吗?(1/0)>:");scanf("%d",&input);if(input==1......