svg基础(二)标签和属性

123 阅读2分钟

上一篇文章简单介绍了svg基础概念和几个属性,本篇主要介绍svg标签及其属性

0 特殊

图形标签
分组<g>
定义可重用部件<defs>

1 图形和文本

图形标签
直线<line>
折线<polyline>
矩形<rect>
圆形<circle>
椭圆<ellipse>
多边形<polygon>
路径<path>
文本<text>

1.1 <line>

x1,y1,x2,y2分别为起始点和终止点的坐标

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    <line x1="0" y1="0" x2="200" y2="200" stroke="rgb(255,0,0)" stroke-width="2" />
</svg>

image.png

1.2 <polyline>

points为多个点坐标数组,横坐标和纵坐标用,分隔,每对坐标间用空格分隔

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    <polyline points="20,20 30,10 40,30 60,120 100,140 190,180" fill="none" stroke="red" stroke-width="3" />
    </svg>

image.png

1.3 <rect>

width为宽度,height为高度

 <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    <rect width="300" height="100" fill="blue" stroke-width="1" stroke="rgb(0,0,0)" />
</svg>

image.png

1.4 <circle>

cx为圆心x坐标,cy为圆心y坐标,r为半径

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

image.png

1.5 <ellipse>

cx为椭圆心x坐标,cy为椭圆心y坐标,rx为水平半径,ry为水平半径

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> 
  <ellipse cx="300" cy="80" rx="100" ry="50" fill="red" stroke="purple" stroke-width="2" />
</svg>

image.png

1.6 <polygon>

points为多边形每个顶点的坐标,横坐标和纵坐标用,分隔,每对坐标间用空格分隔

<svg height="210" width="500"> 
  <polygon points="10,10 20,15 50,100 80,210 200,210" fill="red" stroke="purple" stroke-width="2" />
</svg>

image.png

1.7 <path>

每对坐标由空格分开,同时坐标前附加命令 下面的命令可用于路径数据:

  • M = moveto 移动到
  • L = lineto 画线到
  • H = horizontal lineto 水平线到
  • V = vertical lineto 垂直线到
  • C = curveto 三次贝塞尔曲线到
  • S = smooth curveto 光滑三次贝塞尔曲线到
  • Q = quadratic Bézier curve 二次贝塞尔曲线到
  • T = smooth quadratic Bézier curveto 光滑二次贝塞尔曲线到
  • A = elliptical Arc arc椭圆弧
  • Z = closepath 关闭路径

注意: 以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> 
 <path d="M100 0 L55 100 L125 200 Z" />
</svg>

image.png

1.8 <text>

x为起始横坐标,y为起始纵坐标

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">  
  <text x="10" y="25" fill="red">SVG</text>
</svg>

image.png

2 属性

属性名属性
填充颜色fill
填充透明度fill-opacity
边框颜色stroke
边框宽度stroke-width
边框透明度stroke-opacity
虚线边框stroke-dasharray
不透明度opacity
图形变换transform

stroke-linecap 属性定义不同类型的开放路径的终止形状

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <g fill="none" stroke="red" stroke-width="10">
          <path stroke-linecap="butt" d="M15 20 l115 0" />
          <path stroke-linecap="round" d="M15 40 l115 0" />
          <path stroke-linecap="square" d="M15 60 l115 0" />
        </g>
</svg>

image.png

stroke-dasharray属性用于创建虚线

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    <g fill="none" stroke="red" stroke-width="10">
      <path stroke-dasharray="5,5" d="M15 20 l115 0" />
      <path stroke-dasharray="10,10" d="M15 40 l115 0" />
      <path stroke-dasharray="20,10,5,5,5,10" d="M15 60 l115 0" />
    </g>
</svg>

image.png