形状
- 矩形
<rect> - 圆形
<circle> - 椭圆
<ellipse> - 线
<line> - 折线
<polyline> - 多边形
<polygon> - 路径
<path>
属性
- with 和 height 定义宽高。
- style 定义 CSS 属性。
- style 中 fill 用来定义填充色,fill-opacity 定义填充透明度。
- stroke 定义边框颜色,stroke-witdth 定义边框宽度,stroke-opacity 定义边框(轮廓)透明度
- opacity 定义整个元素的透明度。
- x 和 y 用来定义位置,为相对父元素 svg 的位置。
- rx 和 ry 矩形时用来定义圆角,椭圆时用来定义水平半径和垂直半径。
- cx 和 cy 定义圆点的 x 和 y 坐标。如果省略,圆的中心会被设置为(0,0)。
- r 定义圆的半径。
- x1 和 y1 是线的起始坐标。
- x2 和 y2 是线的结束坐标。
- points 定义多边形每个角的 x 和 y 坐标 (角和角直接用空格隔开,x 和 y 坐标用逗号隔开)
- fill-rule 制定使用哪一种算法判断画布上的某区域是否属于该图形“内部”。如果值为 nonzero 要判断一个点是否在图形内,从该点作任意方向的一条射线,然后检测射线与图形路径的交点情况。从0开始计数,路径从左向右穿过射线则计数加1,从右向左穿过射线则计数减1。得出计数结果后,如果结果是0,则认为点在图形外部,否则认为在内部。如果值为 evenodd 要判断一个点是否在图形内,从该点作任意方向的一条射线,然后检测射线与图形路径的交点的数量。如果结果是奇数则认为点在内部,是偶数则认为点在外部。
路径 <path>
- M = moveto 移动到 (x y)+
- L = lineto 画线到 (x y)+
- H = horizontal lineto 水平线到 x+
- V = vertical lineto 垂直线到 y+
- C = curveto 三次贝塞尔曲线到 (x1 y1, x2 y2, x y)+
- S = smooth curve 光滑三次贝塞尔曲线到 (x2 y2, x y)+
- Q = quadratic Bézier curve 二次贝塞尔曲线到 (x1 y1, x y)+
- T = smooth quadratic Bézier curveto 光滑二次贝塞尔曲线到 (x y)+
- A = ellptical Arc 椭圆弧 (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
- Z = closepath 关闭路径
注意:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位
文本 <text>
- transform rotate 参数为:旋转角度 旋转点 x 和 y 坐标。
<defs>引用的元素容器。<a>用于设置链接。
stroke 属性
stroke定义一条线,文本或者元素轮廓颜色stroke-width定义一条线,文本或者元素轮廓厚度stroke-linecap定义不同类型的开发路径的终结stroke-dasharray用于创建虚线
滤镜
- feBlend 与图像相结合的滤镜
- feColorMatrix 用于彩色滤光片转换
- feComponentTransfer
- feComposite
- feConvolveMatrix
- feDiffuseLighting
- feDisplacementMap
- feFlood
- feGaussianBlur
- feImage
- feMerge
- feMorphology
- feOffset 过滤阴影
- feSpecularLighting
- feTile
- feTurbulence
- feDistantLight 用于照明过滤
- fePointLight 用于照明过滤
- feSpotLight 用于照明过滤
*** SVG 滤镜定义都在<defs> 中。<filter> 用来定义 SVG 滤镜,使用必须的 ID 属性引用 ***
(这么多滤镜效果,这是要一个个自己试吗……)