第1章 入门指南 1
1.1图形系统 1
1.1.1栅格图形 1
1.1.2矢量图形 2
1.1.3栅格图形的用途 2
1.1.4矢量图形的用途 2
1.2可缩放 3
1.3 SVG的作用 5
1.4创建一个SVG图像 5
1.4.1文档结构 5
1.4.2基本形状 6
1.4.3指定样式属性 6
1.4.4图形对象分组 7
1.4.5变换坐标系统 8
1.4.6其他基本图形 8
1.4.7路径 9
1.4.8文本 10
第2章 在网页中使用SVG 12
2.1将SVG作为图像 12
2.1.1在<img>元素内包含SVG 13
2.1.2在CSS中包含SVG 14
2.2将SVG作为应用程序 15
2.3混合文档中的SVG标记 16
2.3.1 SVG中的foreign object 16
2.3.2在XHTML或者HTML5中内联SVG 18
2.3.3其他XML应用程序中的SVG 20
第3章 坐标系统 21
3.1视口 21
3.2使用默认用户坐标 22
3.3为视口指定用户坐标 24
3.4保留宽高比 25
3.4.1为preserveAspectRatio指定对齐方式 26
3.4.2使用meet说明符 27
3.4.3使用slice说明符 28
3.4.4使用none说明符 29
3.5嵌套坐标系统 29
第4章 基本形状 32
4.1线段 32
4.2笔画特性 33
4.2.1 stroke-width 33
4.2.2笔画颜色 34
4.2.3 stroke-opacity 35
4.2.4 stroke-dasharray属性 36
4.3矩形 37
4.4圆和椭圆 39
4.5多边形 40
4.6折线 42
4.7线帽和线连接 43
4.8基本形状总结 44
4.8.1形状元素 45
4.8.2指定颜色 45
4.8.3笔画和填充特性 46
第5章 文档结构 47
5.1结构和表现 47
5.2在SVG中使用样式 48
5.2.1内联样式 48
5.2.2内部样式表 48
5.2.3外部样式表 49
5.2.4表现属性 50
5.3分组和引用对象 51
5.3.1 <g>元素 51
5.3.2 <use>元素 52
5.3.3 <defs>元素 53
5.3.4 <symbol>元素 55
5.3.5 <image>元素 56
第6章 坐标系统变换 58
6.1 translate变换 58
6.2 scale变换 60
6.3变换序列 63
6.4技巧:笛卡儿坐标系统转换 65
6.5 rotate变换 67
6.6技巧:围绕中心点缩放 69
6.7 skewX和skewY变换 69
6.8变换总结 70
6.9 CSS变换和SVG 71
第7章 路径 72
7.1 moveto、 lineto和closepath 72
7.2相对moveto和lineto 75
7.3路径的快捷方式 75
7.3.1水平和垂直lineto命令 75
7.3.2路径快捷方式表示法 76
7.4椭圆弧 76
7.5从其他弧线格式转换 79
7.6贝塞尔曲线 79
7.6.1二次贝塞尔曲线 80
7.6.2三次贝塞尔曲线 82
7.7路径总结 84
7.8路径和填充 84
7.9 <marker>元素 85
7.10标记记录 88
第8章 图案和渐变 90
8.1图案 90
8.1.1 patternUnits 91
8.1.2 patternContentUnits 92
8.1.3图案嵌套 94
8.2渐变 95
8.2.1 linearGradient元素 95
8.2.2 radialGradient元素 99
8.2.3渐变总结 102
8.3变换图案和渐变 103
第9章 文本 105
9.1文本的相关术语 105
9.2 <text>元素的基本属性 106
9.3文本对齐 108
9.4 <tspan>元素 109
9.5设置文本长度 111
9.6纵向文本 112
9.7国际化和文本 113
9.7.1 Unicode和双向语言 113
9.7.2 <switch>元素 114
9.7.3使用自定义字体 115
9.8文本路径 117
9.9空白和文本 119
9.10案例学习:为图形添加文本 120
第10章 裁剪和蒙版 122
10.1裁剪路径 122
10.2蒙版 125
10.3案例学习:为图形应用蒙版 129
第11章 滤镜 131
11.1滤镜的工作原理 131
11.2创建投影效果 132
11.2.1建立滤镜的边界 132
11.2.2投影<feGaussianBlur> 133
11.2.3存储、链接以及合并滤镜结果 134
11.3创建发光式投影 135
11.3.1 <feColorMatrix>元素 135
11.3.2 <feColorMatrix>详解 136
11.4 <feImage>滤镜 138
11.5 <feComponentTransfer>滤镜 139
11.6 <feComposite>滤镜 143
11.7 <feBlend>滤镜 146
11.8 <feFlood>和<feTile>滤镜 147
11.9光照效果 148
11.9.1漫反射照明 149
11.9.2镜面反射照明 150
11.10访问背景 152
11.11 <feMorphology>元素 153
11.12 <feConvolveMatrix>元素 154
11.13 <feDisplacementMap>元素 156
11.14 <feTurbulence>元素 158
11.15 滤镜总结 159
第12章 SVG动画 161
12.1动画基础 162
12.2动画时间详解 164
12.3同步动画 164
12.4重复动作 165
12.5对复杂的属性应用动画 166
12.6指定多个值 167
12.7多级动画时间 168
12.8 <set>元素 169
12.9 <animateTransform>元素 169
12.10 <animateMotion>元素 171
12.11为运动指定关键点和时间 173
12.12使用CSS处理SVG动画 174
12.12.1动画属性 174
12.12.2设置动画关键帧 175
12.12.3 CSS中的动画运动 176
第13章 添加交互 177
13.1在SVG中使用链接 177
13.2控制CSS动画 179
13.3用户触发的SMIL动画 180
13.4使用脚本控制SVG 181
13.4.1事件概览 183
13.4.2监听和响应事件 184
13.4.3修改多个对象的属性 185
13.4.4拖拽对象 188
13.4.5与HTML页面交互 191
13.4.6创建新元素 195
第14章 使用SVG DOM 198
14.1确定元素的属性值 198
14.2 SVG接口方法 203
14.3使用ECMAScript/JavaScript创建SVG 207
14.4使用脚本控制动画 210
14.5使用JavaScript库 214
14.6 Snap中的事件处理 219
14.6.1点击对象 220
14.6.2拖拽对象 220
第15章 生成SVG 222
15.1将自定义数据转换为SVG 223
15.2使用XSLT将XML数据转换为SVG 226
15.2.1定义任务 226
15.2.2 XSLT的工作方式 228
15.2.3编写XSL样式表 230
附录A SVG中需要的XML知识 238
附录B 样式表介绍 249
附录C 编程概念 255
附录D 矩阵代数 263
附录E 创建字体 270
附录F 将圆弧转换为不同的格式 273
作者简介 277
封面介绍 277