diff --git a/17.md b/17.md
index c966c17..75b6d89 100644
--- a/17.md
+++ b/17.md
@@ -8,13 +8,13 @@
但是,在一些场景中,使用DOM并不符合我们的设计初衷。比如我们很难使用普通的HTML元素画出任意两点之间的线段这类图形。
-这里有两种解决办法。第一种方法基于 DOM,但使用可缩放矢量图形(SVG,Scalable Vector Graphics)代替 HTML。我们可以将 SVG 看成文档标记方言,专用于描述图形而非文字。你可以在HTML文档中嵌入SVG,还可以在<img>标签中引用它。
+这里有两种解决办法。第一种方法基于 DOM,但使用可缩放矢量图形(SVG,Scalable Vector Graphics)代替 HTML。我们可以将 SVG 看成文档标记方言,专用于描述图形而非文字。你可以在HTML文档中嵌入SVG,还可以在
标签中引用它。
我们将第二种方法称为画布(canvas)。画布是一个能够封装图片的DOM元素。它提供了在空白的html节点上绘制图形的编程接口。SVG与画布的最主要区别在于SVG保存了对于图像的基本信息的描述,我们可以随时移动或修改图像。
另外,画布在绘制图像的同时会把图像转换成像素(在栅格中的具有颜色的点)并且不会保存这些像素表示的内容。唯一的移动图形的方法就是清空画布(或者围绕着图形的部分画布)并在新的位置重画图形。
-### 16.1 SVG
+## 16.1 SVG
本书不会深入研究SVG的细节,但是我会简单地解释其工作原理。在本章的结尾,我会再次来讨论,对于某个具体的应用来说,我们应该如何权衡利弊选择一种绘图方式。
@@ -29,22 +29,22 @@
```
-xmlns属性把一个元素(以及他的子元素)切换到一个不同的XML命名空间。这个由url定义的命名空间,规定了我们当前使用的语言。在HTML中不存在的<circle>与<rect>标签,但这些标签在SVG中是有意义的,你可以通过这些标签的属性来绘制图像并指定样式与位置。
+xmlns属性把一个元素(以及他的子元素)切换到一个不同的XML命名空间。这个由url定义的命名空间,规定了我们当前使用的语言。在HTML中不存在的与标签,但这些标签在SVG中是有意义的,你可以通过这些标签的属性来绘制图像并指定样式与位置。
-和HTML标签一样,这些标签会创建DOM元素,脚本可以和它们交互。例如,下面的代码可以把<circle>元素的颜色替换为青色。
+和HTML标签一样,这些标签会创建DOM元素,脚本可以和它们交互。例如,下面的代码可以把元素的颜色替换为青色。
```html
let circle = document.querySelector("circle");
circle.setAttribute("fill", "cyan");
```
-### 16.2 canvas元素
+## 16.2 canvas元素
-我们可以在<canvas>元素中绘制画布图形。你可以通过设置width与height属性来确定画布尺寸(单位为像素)。
+我们可以在