` 下内边距解决。
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+
+## 内联元素的盒子模型
+
+### 内联元素的宽度和高度
+
+内联元素不支持设置宽和高,内联元素元素的大小由内容决定。
+
+### 内联元素的内边距
+
+- 内联元素支持水平方向的内边距。
+- 内联元素可以设置垂直方向的内边距,但是不会影响布局。
+
+### 内联元素的边框
+
+- 内联元素支持水平方向的边框。
+- 内联元素可以设置垂直方向的边框,但是不会影响布局。
+
+### 内联元素的外边距
+
+内联元素支持水平方向的外边距 , 不支持垂直方向的外边距。
\ No newline at end of file
diff --git a/CSS/css-grammar.md b/CSS/css-grammar.md
new file mode 100644
index 00000000..9422adf7
--- /dev/null
+++ b/CSS/css-grammar.md
@@ -0,0 +1,72 @@
+## 语法格式
+
+```css
+选择器 {属性名称 : 属性值; 属性名称 : 属性值;...}
+```
+
+语法特点:
+
+- CSS声明总是以键值对(key\value)形式存在。
+- CSS声明总是以分号(;)结束。
+- 声明组以大括号({})括起来。
+- 为了让CSS可读性更强,每行只描述一个属性。
+
+## CSS 注释
+
+注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。CSS注释以 `/*` 开始, 以 `*/` 结束。
+
+```html
+
+```
+
+## 值得注意的问题
+
+### 值的不同写法和单位
+
+例如在设置字体颜色时,以下几种方式效果相同。
+
+- 第一种方式
+
+```css
+#show1 {color : red;}
+```
+
+- 第二种方式
+
+```css
+#show2 {color : #ff0000;}
+```
+
+像上面这种使用十六进制设置颜色时,如果两两相同,可以写成如下格式:
+
+```css
+#show2 {color : #f00;}
+```
+
+- 第三种方式
+
+```css
+#show3 {color : rgb(255,0,0);}
+```
+
+上面的格式还可以写成如下格式:
+
+```css
+#show3 {color : rgb(100%,0%,0%);}
+```
+
+> **值得注意的是:** 当使用 RGB 百分比时,即使当值为 0 时也要写百分比符号。但是在其他的情况下就不需要这么做了。
+
+### 值为若干单词,记得写引号
+
+```css
+div {font-family : Courier, "Courier New", monospace;}
+```
+
+### 多重声明
+
+如果要定义不止一个声明,则需要用分号将每个声明分开。
+
+### 空格和大小写
+
+大多数样式表包含不止一条规则,而大多数规则包含不止一个声明。多重声明和空格的使用使得样式表更容易被编辑。
diff --git a/CSS/css-introduce.md b/CSS/css-introduce.md
new file mode 100644
index 00000000..63bbf207
--- /dev/null
+++ b/CSS/css-introduce.md
@@ -0,0 +1,20 @@
+## 什么是 CSS
+
+CSS全称为Cascading Style Sheets,译为层叠样式表。样式定义如何显示HTML元素。样式通常存储在样式表中。
+
+CSS 是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统 HTML 的表现而言,CSS 能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。
+
+## 发展历史
+
+从 1990 年代初 HTML 被发明开始,样式表就以各种形式出现了,不同的浏览器结合了它们各自的样式语言,读者可以使用这些样式语言来调节网页的显示方式。一开始样式表是给读者用的,最初的 HTML 版本只含有很少的显示属性,读者来决定网页应该怎样被显示。
+
但随着 HTML 的成长,为了满足设计师的要求,HTML获得了很多显示功能。随着这些功能的增加外来定义样式的语言越来越没有意义了。
+
1994 年哈坤·利提出了 CSS 的最初建议。伯特·波斯(Bert Bos)当时正在设计一个叫做“Argo”的浏览器,他们决定一起合作设计 CSS。
+
当时已经有过一些样式表语言的建议了,但 CSS 是第一个含有“层叠”的主意的。在 CSS 中,一个文件的样式可以从其他的样式表中继承下来。读者在有些地方可以使用他自己更喜欢的样式,在其他地方则继承,或“层叠”作者的样式。这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合各人的爱好。
+
哈坤于 1994 年在芝加哥的一次会议上第一次展示了 CSS 的建议,1995 年他与波斯一起再次展示这个建议。当时 W3C 刚刚创建,W3C 对 CSS 的发展很感兴趣,它为此组织了一次讨论会。哈坤、波斯和其他一些人(比如微软的托马斯·雷尔登)是这个项目的主要技术负责人。1996 年底,CSS 已经完成。1996 年 12 月 CSS 要求的第一版本被出版。
+
1997 年初,W3C 内组织了专门管 CSS 的工作组,其负责人是克里斯·里雷。这个工作组开始讨论第一版中没有涉及到的问题,其结果是 1998 年 5 月出版的第二版要求。到 2007 年为止,第三版还未完备。
+
+## 版本历史
+
+- CSS1 —— 作为一项 W3C 推荐,CSS1 发布于 1996 年 12 月 17 日。1999 年 1 月 11 日,此推荐被重新修订。
+- CSS2 —— 作为一项 W3C 推荐,CSS2 发布于 1999 年 1 月 11 日。CSS2 添加了对媒介(打印机和听觉设备)和可下载字体的支持。
+- CSS3 —— CSS3 计划将 CSS 划分为更小的模块。
\ No newline at end of file
diff --git a/CSS/css-pseudo-class.md b/CSS/css-pseudo-class.md
new file mode 100644
index 00000000..9c69749c
--- /dev/null
+++ b/CSS/css-pseudo-class.md
@@ -0,0 +1,42 @@
+CSS 伪类用于向某些选择器添加特殊的效果。
+
+| 属性 | 描述 |
+| --- | --- |
+| :active | 向被激活的元素添加样式。|
+| :focus | 向拥有键盘输入焦点的元素添加样式。|
+| :hover | 当鼠标悬浮在元素上方时,向元素添加样式。|
+| :link | 向未被访问的链接添加样式。|
+| :visited | 向已被访问的链接添加样式。|
+| :first-child | 向元素的第一个子元素添加样式。|
+
+## 锚伪类
+
+```css
+a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */
+```
+
+## :first-child伪类
+
+```css
+p:first-child {font-weight: bold;}
+```
+
+## 选择器的优先级
+
+在实际开发中,经常会为同一个标签设置多个样式。使用不同方式的选择器,由于其优先级不同,导致最终的效果也会不同。
+
+选择器的优先级,具体如下:
+
+- 内联样式的优先级为 1000
+- ID 选择器的优先级为 100
+- 类选择器的优先级为 10
+- 元素选择器的优先级为 1
+- 通配符选择器的优先级为 0
+- 继承的样式没有任何优先级
+
+> **值得注意的是:**
+>
+> - 当一个样式中包含多个选择器时,需要将所有的选择器的优先级进行相加。
+> - 优先级高的选择器优先显示,选择器的计算不会超过其最大的数量级。
+> - 如果两个选择器的优先级相同,则哪个选择器最后定义才有效。
+> - 如果某个选择器使用了 `!important`,则改选择器的优先级最高。
\ No newline at end of file
diff --git a/CSS/css-selector.md b/CSS/css-selector.md
new file mode 100644
index 00000000..ea94e700
--- /dev/null
+++ b/CSS/css-selector.md
@@ -0,0 +1,126 @@
+## 元素选择器
+
+元素选择器就是通过 HTML 页面的元素名称来设置 CSS 样式。具体语法如下:
+
+```css
+元素名称 { 属性名 : 属性值; }
+```
+
+示例代码:
+
+```css
+div {color : red; }
+```
+
+## 类选择器
+
+类选择器就是通过 HTML 元素的 class 属性值来设置 CSS 样式。具体语法如下:
+
+```css
+.class属性值 { 属性名 : 属性值; }
+```
+
+示例代码:
+
+```css
+.myDiv {color : red; }
+```
+
+## ID选择器
+
+ID选择器就是通过 HTML 元素的 id 属性值来设置 CSS 样式。具体语法如下:
+
+```css
+#id属性值 { 属性名 : 属性值; }
+```
+
+示例代码:
+
+```css
+#show1 {color : red; }
+```
+
+## 属性选择器
+
+属性选择器就是通过 HTML 元素的属性名称来设置 CSS 样式。具体语法如下:
+
+```css
+[属性名称] { 属性名 : 属性值; }
+```
+
+示例代码:
+
+```css
+[name] {color : red; }
+```
+
+| 选择器 | 描述 |
+| --- | --- |
+| [attribute] | 用于选取带有指定属性的元素。|
+| [attribute=value] | 用于选取带有指定属性和值的元素。|
+| [attribute~=value] | 用于选取属性值中包含指定词汇的元素。|
+| [attribute^=value] | 匹配属性值以指定值开头的每个元素。|
+| [attribute$=value] | 匹配属性值以指定值结尾的每个元素。|
+| [attribute*=value] | 匹配属性值中包含指定值的每个元素。|
+
+## 后代选择器
+
+后代选择器就是设置 HTML 页面的指定元素的后代元素(中间使用空格)的 CSS 样式。具体语法如下:
+
+```css
+祖先元素 后代元素 { 属性名 : 属性值; }
+```
+
+示例代码:
+
+```css
+div em {color : red; }
+```
+
+## 子元素选择器
+
+子选择器就是设置 HTML 页面的指定元素的子元素的 CSS 样式。具体语法如下:
+
+```css
+祖先元素 > 子元素{ 属性名 : 属性值; }
+```
+
+示例代码:
+
+```css
+div > em {color : red; }
+```
+
+## 相邻元素选择器
+
+相邻元素选择器就是设置 HTML 页面的指定元素的下一个兄弟元素的 CSS 样式。具体语法如下:
+
+```css
+指定元素 + 兄弟元素 { 属性名 : 属性值; }
+```
+
+示例代码:
+
+```css
+div + div {color : red; }
+```
+
+## 其他内容
+
+### 选择器分组
+
+选择器分组就是将不同选择器相同声明的内容“压缩”在一起,得到更简洁的样式表。
+
+```css
+/* no grouping */
h1 {color:blue;}
h2 {color:blue;}
h3 {color:blue;}
h4 {color:blue;}
h5 {color:blue;}
h6 {color:blue;}
/* grouping */
h1, h2, h3, h4, h5, h6 {color:blue;}
+```
+
+### 通配符选择器
+
+CSS2 引入了一种新的简单选择器 - 通配选择器(universal selector),显示为一个星号(*)。该选择器可以与任何元素匹配,就像是一个通配符。
+
+```css
+* {color:red;}
+```
+
+> **值得注意的是:** 通配符选择器的性能并不好。
\ No newline at end of file
diff --git a/CSS/display-and-hidden.md b/CSS/display-and-hidden.md
new file mode 100644
index 00000000..46257dbf
--- /dev/null
+++ b/CSS/display-and-hidden.md
@@ -0,0 +1,191 @@
+CSS 中的 display 和 visibility 都可以设置一个元素在浏览器中的显示或隐藏效果。
+
+- display: 隐藏某个元素时,不会占用任何空间。换句话讲,不会影响布局。
+- visibility: 隐藏某个元素时,仍需占用与未隐藏之前一样的空间。换句话讲,会影响布局。
+
+## display 属性
+
+| 属性值 | 描述 |
+| --- | --- |
+| none | 此元素不会被显示。|
+
+当将一个元素的 CSS 属性 display 设置为 none 时,该元素会被隐藏。并且被隐藏的元素不会占用 HTML 页面的任何空间。
+
+在 HTML 页面中定义两个 `
` 标签,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+当为第一个 `
` 标签设置 display 属性值为 none 时,该 `
` 标签会被隐藏。
+
+| 属性值 | 描述 |
+| --- | --- |
+| block | 此元素将显示为块级元素。|
+
+该值主要作用于**内联元素**。如果将内联元素的 CSS 属性 display 设置为 block 时,该内联元素将在浏览器中显示成块级元素效果。
+
+在 HTML 页面中定义两个 `
` 标签,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
这是一个span
+
这是一个span
+
+
+```
+
+当为第一个 `
` 标签设置 display 属性值为 block 时,该 `` 标签会呈现块级元素效果。
+
+| 属性值 | 描述 |
+| --- | --- |
+| inline | 默认值,此元素会被显示为内联元素。|
+
+该值主要作用于**块级元素**。如果将内联元素的 CSS 属性 display 设置为 inline 时,该内联元素将在浏览器中显示成内联元素效果。
+
+在 HTML 页面中定义两个 `` 标签,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
这是一个div
+
这是一个div
+
+
+```
+
+当为第一个 `
` 标签设置 display 属性值为 inline 时,该 `
` 标签会呈现内联元素样式。
+
+| 属性值 | 描述 |
+| --- | --- |
+| inline-block | 行内块元素。|
+
+当将 CSS 属性 display 设置为 inline-block 时,该元素在浏览器中显示为内联块级效果。即每个元素呈现块级元素效果,元素之间呈现内联元素效果。
+
+在 HTML 页面中定义两个 `
` 标签,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
这是一个div
+
这是一个div
+
+
+```
+
+分别为两个 `
` 标签设置 display 属性值为 inline-block 时,这两个 `
` 会显示在一行中。
+
+### visibility 属性
+
+visibility 属性指定一个元素是否是可见的。
+
+> **值得注意的是:** visibility 属性设置元素不可见的元素,但会占据页面上的空间。请使用 display 属性来创建不占据页面空间的不可见元素。
+
+| 属性值 | 描述 |
+| --- | --- |
+| visible | 默认值,元素是可见的。|
+| hidden | 元素是不可见的。|
+
+在 HTML 页面中定义两个 `
` 标签,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
这是一个div
+
这是一个div
+
+
+```
+
+当为第一个 `
` 标签设置 visibility 属性值为 hidden 时,该 `
` 会被隐藏。
\ No newline at end of file
diff --git a/CSS/float.md b/CSS/float.md
new file mode 100644
index 00000000..0fc89ca8
--- /dev/null
+++ b/CSS/float.md
@@ -0,0 +1,219 @@
+## 文档流
+
+将窗体自上而下分成一行一行,并在每行中按从左至右的挨次排放元素,即为文档流。
+
+文档流是 HTML 页面的底层结构,HTML 页面创建的元素默认都在文档流中。
+
+- 块级元素
+ - 块级元素在文档流中自上向下排列(垂直方向排列)
+ - 块级元素在文档流中默认的宽度是父元素的100%
+ - 块级元素在文档流中默认的高度被是所有子元素的高度总和
+- 内联元素
+ - 内联元素在文档流中自左向右水平排列(水平方向排列)
+ - 内联元素的宽度和高度都由内容确定
+
+> **值得注意的是:** 如果在一行中不能容纳所有的元素,则会换到下一行,继续自左向右排列。
+
+有三种状况将使得元素离开文档流而存在,分别是浮动、绝对定位、固定定位。
+
+> **值得注意的是:** 在 IE 浏览器中浮动元素也存在于文档流中。
+
+## 浮动
+
+CSS 的 Float(浮动),会使元素脱离文档流,向左或向右移动。其他元素会被重新排列。
+
+Float(浮动),往往是用于图像,但它在布局时一样非常有用。
+
+| 属性值 | 描述 |
+| --- | --- |
+| none | 默认值。元素不浮动。|
+| left | 元素向左浮动。|
+| right | 元素向右浮动。|
+
+设置元素浮动效果时,以下四种情况比较特殊:
+
+- 子元素只能在父元素的区域中进行浮动(子元素浮动不能超出父元素的范围)。
+
+在 HTML 页面中定义两个 `
` 标签为父子元素,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+
+当为子元素 `
` 标签设置 float 属性值为 right 时,该 `
` 为浮动效果。
+
+- 兄弟元素同时设置相同浮动效果时,会进行自动排列。
+
+在 HTML 页面中定义两个 `
` 标签为兄弟元素,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+当同时为两个 `
` 标签设置 float 属性值为 left 时,这两个 `
` 为浮动效果。
+
+- 如果兄弟元素中,前一个兄弟元素没有设置浮动,而后一个兄弟元素设置浮动的话,后一个兄弟元素的浮动不能超过前一个兄弟元素。
+
+在 HTML 页面中定义两个 `
` 标签为兄弟元素,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+当为第二个 `
` 标签设置 float 属性值为 right 时,该 `
` 为浮动效果。
+
+> **值得注意的是:** 所有浮动元素的层级要高于文档流中的元素的层级。但文字是个例外,文字不会被浮动元素所覆盖,而是环绕在浮动元素的周围。
+
+### 块级元素浮动
+
+块级元素设置浮动之后,会从文档流中脱离,并且具有以下特点:
+
+- 块级元素不会独占 HTML 页面的一行。换句话讲,多个块级元素可以处在一行。
+- 块级元素的宽度和高度等于所有后代元素的总和。
+
+### 内联元素浮动
+
+内联元素设置浮动之后,也会从文档流中脱离,并且会呈现块级元素的效果。特点也与设置浮动的块级元素相同。
+
+### 清除浮动
+
+clear 属性指定元素的左侧或右侧不允许浮动的元素。
+
+| 属性值 | 描述 |
+| --- | --- |
+| none | 默认值。允许浮动元素出现在两侧。|
+| left | 在左侧不允许浮动元素。|
+| right | 在右侧不允许浮动元素。|
+| both | 在左右两侧均不允许浮动元素。|
+
+## 高度塌陷
+
+在 HTML 页面中定义两个 `
` 标签为父子元素,并设置 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+
+上述 HTML 页面运行的效果如下:
+
+
+
+为作为子元素 `
` 设置 float 属性值为 left 时,该 `
` 为浮动效果。
+
+
+
+由于并没有为作为父元素的 `
` 设置高度,作为父元素的 `
` 实际的高度与作为子元素的 `
` 的高度相等。
+
+但作为子元素的 `
` 设置浮动后,脱离了文档流,导致作为父元素的 `
` 没有了高度。
+
+现在所看到的效果,就被称为**高度塌陷**。
+
+> 所谓**高度塌陷**,就是指在没有为父元素设置指定高度,并且设置子元素为浮动时,父元素的高度丢失的情况。
+
+高度塌陷的问题,可以通过 BFC(Block Formatting Context)块级格式化环境进行解决。
+
+### BFC 块级格式化环境
+
+BFC(Block Formatting Context)是元素的隐含属性。默认情况下 BFC 是关闭的,当元素开启 BFC 以后,将会具有如下特性:
+
+- 文档流中的元素不会被设置为浮动的元素所覆盖。
+- 子元素的垂直方向的外边距不会传递给父元素。
+- 元素可以包含浮动的子元素。
+
+当然,并不能直接去开启 BFC,而需要使用一些特殊的样式来间接的打开元素的 BFC。
+
+- 设置元素为浮动(float)
+- 设置元素的 display 为 inline-block
+- 设置元素为绝对定位(后面的内容)
+- 将元素的 overflow 设置为一个非 visible 的值(一般设置为 hidden)
+- 在所有子元素的最后新增一个子元素,并设置 clear 属性值为 both
+
+> **值得注意的是:** 开启 BFC 都会有一些副作用,需要选择一些副作用小的方式。
\ No newline at end of file
diff --git a/CSS/how-use-css.md b/CSS/how-use-css.md
new file mode 100644
index 00000000..a5949703
--- /dev/null
+++ b/CSS/how-use-css.md
@@ -0,0 +1,41 @@
+## 第一种内联样式
+
+通过HTML元素的style属性来设置CSS样式,语法如下:
+
+```html
+style="css属性:css属性值;"
+```
+
+示例代码:
+
+```html
+
01_第一种使用方式.html
atguigu
+```
+
+## 第二种内联样式
+
+通过HTML页面的style元素来设置CSS样式,语法如下:
+
+```html
+
+```
+
+示例代码:
+
+```html
+
02_第二种使用方式.html
atguigu
+```
+
+## 外联样式
+
+通过HTML页面的link元素来引入外部CSS样式,语法如下:
+
+```html
+
+```
+
+示例代码:
+
+```html
+
04_第四种使用方式.html
atguigu
+```
\ No newline at end of file
diff --git a/CSS/overflow-attribute.md b/CSS/overflow-attribute.md
new file mode 100644
index 00000000..a4f52e2d
--- /dev/null
+++ b/CSS/overflow-attribute.md
@@ -0,0 +1,92 @@
+overflow 属性用于设置当元素中的内容溢出后的情况。
+
+> **值得注意的是:** 所谓溢出,是指子元素的大小(包括文本、元素或图片等)超出父元素的区域,会有一部分内容显示在父元素所在的区域外。
+
+| 属性值 | 描述 |
+| --- | --- |
+| visible | 默认值。内容不会被修剪,会呈现在元素框之外。|
+| hidden | 内容会被修剪,并且其余内容是不可见的。|
+
+上述两个值,要么设置溢出的内容默认显示在父元素的区域之外,要么设置溢出的内容隐藏不可见。这两种结果都是很好的效果。所以,在实际开发中,很少使用这两个值。
+
+在 HTML 页面中定义一个 `
` 标签,设置 CSS 样式,并设置较多的文本内容,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+ 在我的后园,可以看见墙外有两株树,一株是枣树,还有一株也是枣树。
+这上面的夜的天空,奇怪而高,我生平没有见过这样奇怪而高的天空。他仿佛要离开人间而去,使人们仰面不再看见。然而现在却非常之蓝,闪闪地䀹着几十个星星的眼,冷眼。他的口角上现出微笑,似乎自以为大有深意,而将繁霜洒在我的园里的野花草上。
+我不知道那些花草真叫什么名字,人们叫他们什么名字。我记得有一种开过极细小的粉红花,现在还开着,但是更极细小了,她在冷的夜气中,瑟缩地做梦,梦见春的到来,梦见秋的到来,梦见瘦的诗人将眼泪擦在她最末的花瓣上,告诉她秋虽然来,冬虽然来,而此后接着还是春,蝴蝶乱飞,蜜蜂都唱起春词来了。她于是一笑,虽然颜色冻得红惨惨地,仍然瑟缩着。
+枣树,他们简直落尽了叶子。先前,还有一两个孩子来打他们,别人打剩的枣子,现在是一个也不剩了,连叶子也落尽了。他知道小粉红花的梦,秋后要有春;他也知道落叶的梦,春后还是秋。他简直落尽叶子,单剩干子,然而脱了当初满树是果实和叶子时候的弧形,欠伸得很舒服。但是,有几枝还低亚着,护定他从打枣的竿梢所得的皮伤,而最直最长的几枝,却已默默地铁似的直刺着奇怪而高的天空,使天空闪闪地鬼䀹眼;直刺着天空中圆满的月亮,使月亮窘得发白。
+鬼䀹眼的天空越加非常之蓝,不安了,仿佛想离去人间,避开枣树,只将月亮剩下。然而月亮也暗暗地躲到东边去了。而一无所有的干子,却仍然默默地铁似的直刺着奇怪而高的天空,一意要制他的死命,不管他各式各样地䀹着许多蛊惑的眼睛。
+哇的一声,夜游的恶鸟飞过了。
+我忽而听到夜半的笑声,吃吃地,似乎不愿意惊动睡着的人,然而四围的空气都应和着笑。夜半,没有别的人,我即刻听出这声音就在我嘴里,我也即刻被这笑声所驱逐,回进自己的房。灯火的带子也即刻被我旋高了。
+后窗的玻璃上丁丁地响,还有许多小飞虫乱撞。不多久,几个进来了,许是从窗纸的破孔进来的。他们一进来,又在玻璃的灯罩上撞得丁丁地响。一个从上面撞进去了,他于是遇到火,而且我以为这火是真的。两三个却休息在灯的纸罩上喘气。那罩是昨晚新换的罩,雪白的纸,折出波浪纹的叠痕,一角还画出一枝猩红色的栀子。
+猩红的栀子开花时,枣树又要做小粉红花的梦,青葱地弯成弧形了……我又听到夜半的笑声;我赶紧砍断我的心绪,看那老在白纸罩上的小青虫,头大尾小,向日葵子似的,只有半粒小麦那么大,遍身的颜色苍翠得可爱,可怜。
+我打一个呵欠,点起一支纸烟,喷出烟来,对着灯默默地敬奠这些苍翠精致的英雄们。
+一九二四年九月十五日。
+
+
+
+```
+
+当为第一个 `
` 标签设置 overflow 属性值为 hidden 时,该 `
` 中的溢出文本内容会被隐藏。
+
+| 属性值 | 描述 |
+| --- | --- |
+| scroll | 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。|
+| auto | 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。|
+
+在 HTML 页面中定义一个 `
` 标签,设置 CSS 样式,并设置较多的文本内容,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+ 在我的后园,可以看见墙外有两株树,一株是枣树,还有一株也是枣树。
+这上面的夜的天空,奇怪而高,我生平没有见过这样奇怪而高的天空。他仿佛要离开人间而去,使人们仰面不再看见。然而现在却非常之蓝,闪闪地䀹着几十个星星的眼,冷眼。他的口角上现出微笑,似乎自以为大有深意,而将繁霜洒在我的园里的野花草上。
+我不知道那些花草真叫什么名字,人们叫他们什么名字。我记得有一种开过极细小的粉红花,现在还开着,但是更极细小了,她在冷的夜气中,瑟缩地做梦,梦见春的到来,梦见秋的到来,梦见瘦的诗人将眼泪擦在她最末的花瓣上,告诉她秋虽然来,冬虽然来,而此后接着还是春,蝴蝶乱飞,蜜蜂都唱起春词来了。她于是一笑,虽然颜色冻得红惨惨地,仍然瑟缩着。
+枣树,他们简直落尽了叶子。先前,还有一两个孩子来打他们,别人打剩的枣子,现在是一个也不剩了,连叶子也落尽了。他知道小粉红花的梦,秋后要有春;他也知道落叶的梦,春后还是秋。他简直落尽叶子,单剩干子,然而脱了当初满树是果实和叶子时候的弧形,欠伸得很舒服。但是,有几枝还低亚着,护定他从打枣的竿梢所得的皮伤,而最直最长的几枝,却已默默地铁似的直刺着奇怪而高的天空,使天空闪闪地鬼䀹眼;直刺着天空中圆满的月亮,使月亮窘得发白。
+鬼䀹眼的天空越加非常之蓝,不安了,仿佛想离去人间,避开枣树,只将月亮剩下。然而月亮也暗暗地躲到东边去了。而一无所有的干子,却仍然默默地铁似的直刺着奇怪而高的天空,一意要制他的死命,不管他各式各样地䀹着许多蛊惑的眼睛。
+哇的一声,夜游的恶鸟飞过了。
+我忽而听到夜半的笑声,吃吃地,似乎不愿意惊动睡着的人,然而四围的空气都应和着笑。夜半,没有别的人,我即刻听出这声音就在我嘴里,我也即刻被这笑声所驱逐,回进自己的房。灯火的带子也即刻被我旋高了。
+后窗的玻璃上丁丁地响,还有许多小飞虫乱撞。不多久,几个进来了,许是从窗纸的破孔进来的。他们一进来,又在玻璃的灯罩上撞得丁丁地响。一个从上面撞进去了,他于是遇到火,而且我以为这火是真的。两三个却休息在灯的纸罩上喘气。那罩是昨晚新换的罩,雪白的纸,折出波浪纹的叠痕,一角还画出一枝猩红色的栀子。
+猩红的栀子开花时,枣树又要做小粉红花的梦,青葱地弯成弧形了……我又听到夜半的笑声;我赶紧砍断我的心绪,看那老在白纸罩上的小青虫,头大尾小,向日葵子似的,只有半粒小麦那么大,遍身的颜色苍翠得可爱,可怜。
+我打一个呵欠,点起一支纸烟,喷出烟来,对着灯默默地敬奠这些苍翠精致的英雄们。
+一九二四年九月十五日。
+
+
+
+```
+
+当为第一个 `
` 标签设置 overflow 属性值为 scroll 时,该 `
` 中的溢出文本内容会显示滚动条。
+
+上述两个值,当有溢出的内容出现时,都会显示滚动条以便查看其余的内容。但不同是:
+
+- scroll: 无论是否有溢出的内容,始终显示滚动条。
+- auto: 当有溢出的内容出现时,才显示滚动条。如果没有溢出的内容时,会自动隐藏滚动条。
\ No newline at end of file
diff --git a/CSS/position.md b/CSS/position.md
new file mode 100644
index 00000000..aaef108c
--- /dev/null
+++ b/CSS/position.md
@@ -0,0 +1,217 @@
+CSS 的 position 定位属性允许自定义元素在 HTML 页面的位置,但需要先开启元素在 HTML 页面中的定位。
+
+> **值得注意的是:** 元素在 HTML 页面中默认是不开启定位的。
+
+CSS 定位属性提供了四种方式的定位效果:
+
+- static: 默认值,表示元素为静态定位。
+- absolute: 表示元素为绝对定位。
+- fixed: 表示元素为固定定位。
+- relative: 表示元素为相对定位。
+
+当设置元素的 position 定位属性为**非默认值**时,CSS 提供了上、右、下和左四个方向的偏移量完成元素的位置设置。
+
+- top: 表示当前元素到上边的距离。
+- right: 表示当前元素到右边的距离。
+- bottom: 表示当前元素到下边的距离。
+- left: 表示当前元素到左边的距离。
+
+
+
+## 绝对定位
+
+| 属性值 | 描述 |
+| --- | --- |
+| absolute | 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。|
+
+> 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
+
+元素开启绝对定位后,与浮动效果类似:
+
+- 元素会脱离文档流。
+- 元素会呈现块级元素效果。
+- 如果不设置偏移量,元素的位置不会发生变化。
+
+### 如果元素的父元素是 `` 的话,绝对定位会相对于当前页面
+
+在 HTML 页面中定义两个 `
` 标签,并且为相邻的兄弟元素,并设置其 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+为第二个 `
` 元素开启绝对定位,并设置偏移量,具体代码如下:
+
+```css
+position: absolute;
+left: 0px;
+top: 0px;
+```
+
+> **值得注意的是:** 如果开启绝对定位的元素的父元素并不是 `` 标签,但父元素没有开启任何定位的话,开启绝对定位的元素还是相对于当前页面。
+
+### 如果元素的父元素不是 `` 标签,并且开启定位的话,绝对定位会相对于父元素
+
+在 HTML 页面中定义两个 `
` 标签,并且为父元素与子元素的关系,并设置其 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+
+为两个 `
` 元素开启绝对定位,并设置偏移量,具体代码如下:
+
+```css
+#d1 {
+ width: 500px;
+ height: 400px;
+ background-color: lightskyblue;
+
+ position: absolute;
+ left: 100px;
+ top: 0px;
+}
+#d2 {
+ width: 300px;
+ height: 300px;
+ background-color: green;
+
+ position: absolute;
+ left: 100px;
+ top: 0px;
+}
+```
+
+## 固定定位
+
+| 属性值 | 描述 |
+| --- | --- |
+| fixed | 生成绝对定位的元素,相对于浏览器窗口进行定位。|
+
+> 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
+
+固定定位是一种特殊的绝对定位,固定定位与绝对定位的区别在于:
+
+- 固定定位始终相对于当前页面进行定位。
+- 绝对定位相对于最近的祖先元素进行定位。
+
+例如上述效果就是固定定位的一种应用方式。实现上述效果的具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+
+## 相对定位
+
+| 属性值 | 描述 |
+| --- | --- |
+| relative | 生成相对定位的元素,相对于其正常位置进行定位。|
+
+> **值得注意的是:**
+>
+> - 开启相对定位的元素,不会脱离文档流。
+> - 开启相对定位的元素,是相对于该元素在文档流中的定位效果。
+> - 开启相对定位的元素,不会改变元素的性质。(块级元素呈现块级元素效果,内联元素呈现内联元素效果)
+
+在 HTML 页面中定义两个 `
` 标签,并且为相邻的兄弟元素,并设置其 CSS 样式,具体代码如下:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+为第二个 `
` 元素开启相对定位,并设置偏移量,具体代码如下:
+
+```css
+position: absolute;
+left: 0px;
+top: 0px;
+```
\ No newline at end of file
diff --git a/HTML/html5-basics/first-html.md b/HTML/html5-basics/first-html.md
new file mode 100644
index 00000000..6aed50d0
--- /dev/null
+++ b/HTML/html5-basics/first-html.md
@@ -0,0 +1,196 @@
+## 示例代码
+
+```html
+
01_helloworld.html
hello world!
+```
+
+示例代码说明:
+
+- html 标签: 定义 HTML 文档,HTML 文档的根标签。
+- head 标签: 定义关于文档的基本信息。
+- body 标签: 定义文档的主体,运行 HTML 文档时显示的内容。
+- title 标签: 定义文档的标题。在运行网页时,页面顶端显示的内容。
+- font 标签: 定义文字的字体、尺寸和颜色。
+
+## HTML元素(标签)
+
+HTML 标记标签通常被称为 HTML 标签,"HTML 标签" 和"HTML 元素" 通常都是描述同样的意思。(一个 HTML 元素包含了开始标签与结束标签)
+
+- HTML 标签是由尖括号包围的关键词,比如 ``
+- HTML 标签通常是成对出现的,比如 `
` 和 ``
+- 标签对中的第一个标签是开始标签,第二个标签是结束标签
+- 开始和结束标签也被称为开放标签和闭合标签
+
+> **值得注意的是:**
+>
+> 不要忘记结束标签:
+>
+> ```html
+>
hello world!
+> ```
+>
+> - 即使忘记了使用结束标签,大多数浏览器也会正确地显示 HTML。
+> - HTML 文档中,关闭标签是可选的。
+> - 不要依赖这种做法。忘记使用结束标签会产生不可预料的结果或错误。
+>
+> HTML 空元素:
+>
+> - 没有内容的 HTML 元素被称为空元素。空元素是在开始标签中关闭的。
+> - `
` 就是没有关闭标签的空元素(`
` 标签定义换行)。
+> - 在 XHTML、XML 以及未来版本的 HTML 中,所有元素都必须被关闭。
+> - 在开始标签中添加斜杠,比如 `
`,是关闭空元素的正确方法,HTML、XHTML 和 XML 都接受这种方式。
+> - 即使 `
` 在所有浏览器中都是有效的,但使用 `
` 其实是更长远的保障。
+>
+> 推荐使用小写标签:
+>
+> - HTML 标签对大小写不敏感:`` 等同于 `
`。许多网站都使用大写的 HTML 标签。
+> - 万维网联盟(W3C)在 HTML 4 中推荐使用小写,而在未来 (X)HTML 版本中强制使用小写。
+
+## HTML 属性
+
+```html
+hello world!
```
+
+属性是 HTML 元素提供的附加信息。
+
+- HTML 元素可以设置属性。
+- 属性可以在元素中添加附加信息。
+- 属性一般描述于开始标签。
+- 属性总是以名称/值对的形式出现,比如:name="value"。
+
+> **值得注意的是:**
+>
+> HTML 属性常用引用属性值:
+>
+> - 属性值应该始终被包括在引号内。
+> - 双引号是最常用的,不过使用单引号也没有问题。 在某些个别的情况下,比如属性值本身就含有双引号,那么必须使用单引号。
+>
+> 推荐使用小写属性:
+>
+> - 属性和属性值对大小写不敏感。
+> - 万维网联盟在其 HTML 4 推荐标准中推荐小写的属性/属性值。
+> - 新版本的 (X)HTML 要求使用小写属性。
+
+## HTML 注释
+
+```html
+
+```
+
+- 开始括号之后(左边的括号)需要紧跟一个叹号,结束括号之前(右边的括号)不需要。
+- 浏览器会忽略注释,也不会显示它们。
+- 将注释插入 HTML 代码中,这样可以提高其可读性,使代码更易被人理解。
+- 合理地使用注释可以对未来的代码编辑工作产生帮助。
+
+## HTML 文档
+
+```
+HTML文档 = 网页
+```
+
+- HTML文档描述网页
+- HTML文档包含HTML标签和纯文本
+- HTML文档也被称为网页
+- HTML文档文件的后缀名为“.html”和“.htm”,两种后缀名没有任何区别
+
+## HTML 基本结构
+
+```html
+
+```
+
+## 声明
+
+ 声明有助于浏览器中正确显示网页。网络上有很多不同的文件,如果能够正确声明 HTML 的版本,浏览器就能正确显示网页内容。
+
+- 声明位于文档中的最前面的位置,处于 标签之前。
+- 声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。
+- 总是给您的 HTML 文档添加 声明,确保浏览器能够预先知道文档类型。
+
+各个HTML版本的 声明应如何书写:
+
+- HTML 5
+
+```html
+
+```
+
+- HTML 4.01 Strict
+
+ 这个 DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。
+
+```html
+
+```
+
+- HTML 4.01 Transitional
+
+ 这个 DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(如 font )。框架集是不允许的。
+
+```html
+
+```
+
+- HTML 4.01 Frameset
+
+ 这个 DTD 与 HTML 4.01 Transitional 相同,但是允许使用框架集内容。
+
+```html
+
+```
+
+## HTML 头部
+
+### `` 元素
+
+`` 元素包含了所有的头部标签元素。在 `` 元素中你可以插入脚本(scripts), 样式文件(CSS),及各种 meta 信息。
+
+可以添加在头部区域的元素标签为: ``, `
+
+
+
+
+
+
+
+
+```
+
+### JavaScript 逻辑
+
+* 创建百度地图对象
+
+```javascript
+var map = new BMap.Map(容器元素id);
+```
+
+* 初始化百度地图
+
+```javascript
+map.centerAndZoom(中心点坐标,显示级别)
+```
+
+如下述示例代码:
+
+```javascript
+/*
+ 1. 通过Map()构造函数,创建百度地图对象
+ var map = new BMap.Map(容器元素id属性值);
+*/
+var map = new BMap.Map("allmap");
+/*
+ 2. (必要)初始化百度地图 - 设置中心点和显示级别
+ map.centerAndZoom(center,zoom)
+ * center - 设置百度地图当前的中心点坐标
+ * Point类型,zoom参数必须设置
+ * String类型,zoom参数可有可无
+ * 如果不设置zoom,自动匹配最佳显示级别
+ * zoom - 设置百度地图当前的显示级别
+ * 一般情况下,值范围为 3-19
+ * 高清地图(移动端),值范围为 3-18
+*/
+map.centerAndZoom("北京",12);
+```
+
+## 核心类
+
+### Map类
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| Map(container) | container:页面容器元素id | 创建地图实例对象 |
+
+**配置方法**
+
+| 方法名称 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| enableScrollWheelZoom() | | 开启鼠标滚轮放大或缩小地图的显示级别 |
+| disableScrollWheelZoom() | | 禁用鼠标滚轮功能 |
+| enableDragging() | | 启用鼠标拖拽功能 |
+| disableDragging() | | 禁用鼠标拖拽功能 |
+
+**地图状态方法**
+
+| 方法名称 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| getCenter() | | 返回地图当前中心点(Point类型) |
+| getZoom() | | 返回地图当前缩放级别(Number类型) |
+
+**修改地图状态方法**
+
+| 方法名称 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| centerAndZoom(center,zoom) | center:设置地图的中心点坐标;zoom:设置地图的显示级别 | 初始化地图中心点和级别 |
+| setCenter(center) | center:设置地图的中心点坐标 | 设置地图中心点(Point|String) |
+| setCurrentCity(city) | city:设置地图城市 | 设置地图城市 |
+| setZoom(zoom) | zoom:设置地图的显示级别 | 设置显示级别 |
+
+**控件方法**
+
+| 方法名称 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| addControl(control) | | 将控件添加到地图 |
+| removeControl(control) | | 从地图中移除控件 |
+
+**覆盖物方法**
+
+| 方法名称 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| addOverlay(overlay) | | 将覆盖物添加到地图中 |
+| removeOverlay(overlay) | | 从地图中移除覆盖物 |
+| openInfoWindow(InfoWindow, Point) | InfoWindow:设置信息窗口;Point:在指定点打开 | 设置信息窗口 |
+
+## 控件类
+
+### ScaleControl类
+
+表示比例尺控件。
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| ScaleControl(ScaleControlOptions) | - | 创建地图比例尺对象 |
+
+### ScaleControlOptions类
+
+表示ScaleControl构造函数的可选参数。
+
+**选项**
+
+- anchor:设置当前控件显示的位置。
+ - `BMAP_ANCHOR_TOP_LEFT`:左上角
+ - `BMAP_ANCHOR_BOTTOM_LEFT`:左下角
+ - `BMAP_ANCHOR_TOP_RIGHT`:右上角
+ - `BMAP_ANCHOR_BOTTOM_RIGHT`:右下角
+
+### NavigationControl类
+
+表示地图的平移缩放控件。
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| NavigationControl(NavigationControlOptions) | - | 创建地图平移缩放对象 |
+
+### MapTypeControl类
+
+负责切换地图类型的控件。
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| MapTypeControl(MapTypeControlOptions) | - | 创建地图类型对象 |
+
+### OverviewMapControl类
+
+表示缩略地图控件。
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| OverviewMapControl(OverviewMapControlOptions) | - | 创建缩略地图对象 |
+
+```html
+
+
+
+
+ 百度地图的控件类
+
+
+
+
+
+
+
+
+```
+
+## 覆盖物类
+
+### Marker类
+
+表示地图上一个图像标注。
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| Marker(point) | - | 创建标注对象 |
+
+### InfoWindow类
+
+表示地图上包含信息的窗口。
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| InfoWindow(content) | content:设置当前点的地址信息内容 | 创建信息的窗口对象 |
+
+**方法**
+
+| 方法名称 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| setWidth(width) | | 设置信息窗口的宽度 |
+| setHeight(height) | | 设置信息窗口的高度 |
+| setTitle(title) | | 设置信息窗口的标题 |
+
+```html
+
+
+
+
+
+ 为百度地图进行标注
+
+
+
+
+
+
+
+
+```
+
+## 服务类
+
+### Geocoder类
+
+用于获取用户的地址解析。
+
+**构造器**
+
+| 构造函数 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| Geocoder() | content:设置当前点的地址信息内容 | 创建地址解析对象 |
+
+**方法**
+
+| 方法名称 | 参数 | 说明 |
+| ------- | ---- | ---- |
+| getPoint(address,callback,city) | address:要解析的地址内容;callback:回调函数(解析address地址成功的话,回调函数具有一个形参);city:当前地址所在的城市名称 | 对指定的地址进行解析 |
+
+```html
+
+
+
+
+ 百度地图案例
+
+
+
+
+
+
+
+
+```
\ No newline at end of file
diff --git a/HTML/html5/canvas.md b/HTML/html5/canvas.md
new file mode 100644
index 00000000..18f4be8d
--- /dev/null
+++ b/HTML/html5/canvas.md
@@ -0,0 +1,935 @@
+## 基础内容
+
+### Canvas技术允许在HTML页面直接绘制图形
+
+- 不再需要引入外部图片(图形),HTML页面性能有所提高。
+- 可以实现一些比较复杂的图形绘制工作。
+
+### Canvas技术主要应用方向
+
+- Web应用方面主要实现图表类。
+- 网页游戏方面 - 主要实现2D效果。
+
+### HTML5 提供有关图形方面的技术
+
+- Canvas - 主要以2D为主
+- WebGL - 主要以3D为主
+- SVG - 矢量图
+
+### Canvas的特点
+
+- 绘制的图形与HTML页面之间是无关系的
+- 通过Canvas绘制的图形不能使用DOM API
+- 通过Canvas绘制的图形不能绑定事件
+- Canvas画布最终是以图片(png|jpg)形式出现
+- 绘制图形默认的颜色为黑色
+
+## 如何使用Canvas画布
+
+### 在HTML页面中定义`