SVG 基本语法

SVG 基本语法最精华速查表(2025 版)

直接看这一篇就够你日常写 99% 的 SVG 了,全部代码可直接复制运行。

1. 最基础的 SVG 骨架(必须记住这 4 行)

<svg width="400" height="200" viewBox="0 0 400 200" xmlns="http://www.w3.org/2000/svg">
  <!-- 这里面放所有图形 -->
</svg>
  • width/height:最终显示尺寸(可被 CSS 覆盖)
  • viewBox="0 0 宽 高":坐标系统(最重要!决定了内部坐标)
  • xmlns:必须写,否则浏览器不认

2. 6 大基本形状(背会这 6 个就够用了)

形状语法关键属性示例
矩形<rect>x, y, width, height, rx/ry(圆角)<rect x="10" y="10" width="100" height="60" rx="10"/>
圆形<circle>cx, cy, r<circle cx="100" cy="80" r="40"/>
椭圆<ellipse>cx, cy, rx, ry<ellipse cx="200" cy="80" rx="80" ry="40"/>
直线<line>x1,y1,x2,y2<line x1="0" y1="0" x2="200" y2="100"/>
折线<polyline>points=”x1 y1 x2 y2 …”<polyline points="0,0 50,50 100,0"/>
多边形<polygon>points(自动闭合)<polygon points="100,10 150,90 50,90"/>

3. 万能的 (所有复杂图形都靠它)

<path d="路径指令" />

常见指令(大写=绝对坐标,小写=相对坐标):

指令含义示例
M x y移到(起点)M 10 10
L x y直线到L 100 100
H x水平线到H 200
V y垂直线到V 50
Q x1 y1 x y二次贝塞尔曲线Q 100 200 200 100
C x1 y1 x2 y2 x y三次贝塞尔曲线C 100 200 300 0 400 100
Z闭合路径Z

经典例子:

<!-- 心形 ❤️ -->
<path d="M 100,30
         C 140,0 200,0 200,60
         C 200,100 150,150 100,190
         C 50,150 0,100 0,60
         C 0,0 60,0 100,30 Z"
      fill="red"/>

4. 公共样式属性(写一次,后面都省)

fill="red"            <!-- 填充颜色 -->
fill="none"           <!-- 无填充 -->
fill-opacity="0.5"    <!-- 填充透明度 -->

stroke="#000"         <!-- 边框颜色 -->
stroke-width="4"      <!-- 边框粗细 -->
stroke-linecap="round"   <!-- 端点:butt | round | square -->
stroke-dasharray="10 5"  <!-- 虚线:10像素实线 + 5像素空白 -->

opacity="0.8"         <!-- 整体透明度 -->

5. 文字(超实用)

<text x="100" y="50" font-size="32" text-anchor="middle">Hello SVG</text>

<!-- 沿着路径排字(环形文字)-->
<defs>
  <path id="circle" d="M100,100 m-75,0 a75,75 0 1,1 150,0 a75,75 0 1,1 -150,0"/>
</defs>
<text>
  <textPath href="#circle">● 环形文字真好看 ● 环形文字真好看</textPath>
</text>

6. 30 秒记住的完整小示例(复制即用)

<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" style="background:#f0f0f0">
  <rect x="10" y="10" width="180" height="180" rx="20" fill="#4a6fe3"/>
  <circle cx="100" cy="80" r="35" fill="white"/>
  <circle cx="100" cy="80" r="20" fill="#4a6fe3"/>
  <path d="M70 110 Q100 140 130 110" stroke="white" stroke-width="10" fill="none" stroke-linecap="round"/>
</svg>

结果:一个蓝色笑脸卡片

把上面内容保存为 test.svg 双击打开,或者直接粘到 HTML 里就能看到效果。

需要我再给你发一份「SVG 基本语法一页纸 PDF(彩色打印版)」或者「100 个最常用路径代码片段」吗?一发就学会!

文章已创建 2838

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部