diff --git "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/01-VS Code\347\232\204\344\275\277\347\224\250.md" "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/01-VS Code\347\232\204\344\275\277\347\224\250.md" index ba53a10f..c2891471 100644 --- "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/01-VS Code\347\232\204\344\275\277\347\224\250.md" +++ "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/01-VS Code\347\232\204\344\275\277\347\224\250.md" @@ -1,13 +1,16 @@ ## 前言 -> 本文最新内容将在[GitHub](https://github.com/qianguyihao/Web/blob/master/00-%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.md)上实时更新。 + +> 本文的最新内容,更新于**2019-11-08**。大家完全不用担心这篇文章会过时,因为随着 VS Code 的版本更新和插件更新,本文也会随之更新。 + +> 本文的最新内容,也会在[GitHub](https://github.com/qianguyihao/Web/blob/master/00-%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.md)上同步更新,欢迎 star。 VS Code 本来是前端人员专用,但由于它实在是太好用了,于是,各种开发方向的码农也正在用 VS Code 作为他们的主力编程工具。甚至是一些写作的同学,也把 VS Code 作为 markdown 写作工具。 写下这篇文章,是顺势而为。 -### VS Code 的介绍 +### 一、VS Code 的介绍 VS Code 的全称是 Visual Studio Code,是一款开源的、免费的、跨平台的、高性能的、轻量级的代码编辑器。它在性能、语言支持、开源社区方面,都做的很不错。 @@ -43,7 +46,7 @@ VS Code 的全称是 Visual Studio Code,是一款开源的、免费的、跨 所以,如果你以后还问这个问题,那就真有些掉底了。 -## VS Code 的安装 +### VS Code 的安装 - VS Code 官网: @@ -53,7 +56,7 @@ VS Code 的安装很简单,直接去官网下载安装包,然后双击安装 上图中,直接点击 download 下载安装即可。 -## VS Code快捷键 +## 二、VS Code快捷键 VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的内容,都是常用快捷键,而加粗部分的快捷键,使用频率则非常高。 @@ -76,7 +79,7 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的 - 「Cmd + 左右方向键」:在**整行**之间移动光标(很常用)。注:Win 的快捷键是「Fn + 左右方向键」 -- 「Cmd + Shift + \」:在**代码块**之间移动光标。 +- 「`Cmd + Shift + \`」:在**代码块**之间移动光标。 ### 删除操作 @@ -86,7 +89,7 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的 | option + delete | Ctrl + delete | 删除光标之后的一个单词 | | | **Cmd + delete** | | 删除光标之前的整行内容 | 很常用 | | Cmd + delete | | 删除光标之后的整行内容 | | -| Cmd + shift + K | Ctrl + Shift + K | 删除整行| 按「Cmd + X」也可以删除整行,虽然它的作用是剪切 | +| Cmd + shift + K | Ctrl + Shift + K | 删除整行| 「Cmd + X」的作用是剪切,但也可以删除整行 | 备注:上面所讲到的移动光标、删除操作的快捷键,在其他编辑器里,也是同样的操作。 @@ -97,6 +100,8 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的 | **Cmd + Enter** | Ctrl + Enter | 在当前行下面新增一行,然后跳至该行 | 即使光标不在行尾,也能快速向下插入一行 | | **Option + ↑** | Alt + ↑| 将代码向上移动 | 很常用 | | **Option + ↓** | Alt + ↓| 将代码向下移动 | 很常用 | +| **Option + Shift + ↑** | Alt + Shift + ↑| 将代码向上复制 | 很常用 | +| **Option + Shift + ↓** | Alt + Shift + ↓| 将代码向下复制 | 很常用 | ### JS语言相关 @@ -122,7 +127,7 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的 | Mac快捷键 | Win快捷键 | 作用 | 备注 | |:-------------|:-------------|:-----|:-----| |Cmd + F|Ctrl + F|在当前文件中搜索,光标在搜索框里|| -|Cmd + G|F3|在当前文件中搜索,光标仍在编辑器里|| +| **Cmd + G** |**F3**|在当前文件中搜索,光标仍停留在编辑器里| 很巧妙 | |**Cmd + Shift + F**|Ctrl + Shift +F|全局搜索|很常用| ### 多光标的使用 @@ -135,9 +140,9 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的 ### 工作区快捷键 - | Mac快捷键 | Win快捷键 | 作用 | 备注 | |:-------------|:-------------|:-----|:-----| +| **cmd +/-** | **ctrl +/-** | 将工作区放大/缩小(包括代码字体、左侧导航栏) | 在投影仪场景经常用到 | | **Cmd + B** | Ctrl + B | 显示/隐藏侧边栏 | 很实用 | |`Cmd + \`|`Ctrl + \`|创建多个编辑器|比较实用| | **Cmd + Option + 左右方向键** | Ctrl + Pagedown/Pageup | 在已经打开的文件之间进行**切换** | 非常实用 | @@ -161,16 +166,63 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的 上图中,在展开的菜单中选择「键盘快捷方式」,就可以查看和修改所有的快捷键列表了: -![](http://img.smyhvae.com/20190418_1739.png) +![](http://img.smyhvae.com/20190418_1739_2.png) + +## 四、命令面板的使用 + +Mac用户按住快捷键 `Cmd+Shift+P` (Windows用户按住快捷键`Ctrl+Shift+P`),可以打开命令面板。效果如下: + +![](http://img.smyhvae.com/20190329_1750_2.png) + +如果们需要修改一些设置项,可以通过「命令面板」来操作,效率会更高。这里列举一些。 + +### 字体设置 + +在命令面板输入“字体”,可以进行字体的设置,效果如下: + +![](http://img.smyhvae.com/20190329_2110.png) + +当然,你也可以在菜单栏,选择「首选项-设置-常用设置」,在这个设置项里修改字体大小。 + +### 快捷键设置 + +在命令面板输入“快捷键”,就可以进入快捷键的设置。 + +### 大小写转换 + +选中文本后,在命令面板中输入`transfrom`,就可以修改文本的大小写了。 + +![](http://img.smyhvae.com/20190414_1751.png) + +### 使用命令行启动 VS Code +(1)输入快捷键「Cmd + Shift + P 」,选择`install code command`: -## VS Code 的常见设置项 +![](http://img.smyhvae.com/20191103_1327.png) -### 面包屑(Breadcrumb) +(2)使用命令行: + +- `code`命令:启动 VS Code 软件 + +- `code pathName/fileName`命令:通过 VS Code 软件打开指定目录/指定文件。 + +## 五、VS Code 的常见设置项 + +### 1、VS Code 设置为中文语言 + +Mac用户按住快捷键 `Cmd+Shift+P` (Windows用户按住快捷键`Ctrl+Shift+P`),打开命令面板。 + +在命令面板中,输入`Configure Display Language`,选择`Install additional languages`,然后安装插件`Chinese (Simplified) Language Pack for Visual Studio Code`即可。 + +或者,我们可以直接安装插件`Chinese (Simplified) Language Pack for Visual Studio Code`,是一样的。 + +安装完成后,重启VS Code。 + +### 2、面包屑(Breadcrumb) 打开 VS Code 的设置项,选择「用户设置 -> 工作台 -> 导航路径」,如下图所示: -![](http://img.smyhvae.com/20190415_2005.png) +![](http://img.smyhvae.com/20191108_1550.png) 上图中,将红框部分打钩即可。 @@ -178,7 +230,7 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的 ![](http://img.smyhvae.com/20190415_2009.png) -### 是否显示代码的行号 +### 3、是否显示代码的行号 VS Code 默认显示代码的行号。你可以在设置项里搜索 `editor.lineNumbers`修改设置,配置项如下: @@ -186,37 +238,32 @@ VS Code 默认显示代码的行号。你可以在设置项里搜索 `editor.lin 我建议保留这个设置项,无需修改。 -### 右侧是否显示代码的缩略图 +### 4、右侧是否显示代码的缩略图 VS Code 会在代码的右侧,默认显示缩略图。你可以在设置项里搜索 `editor.minimap`进行设置,配置项如下: ![](http://img.smyhvae.com/20190417_2156.png) -### 将当前行代码高亮显示 - -当我们把光标放在某一行时,这一行的背景色并没有发生变化。如果想**高亮显示**当前行的代码,你可以在设置项里搜索`editor.renderLineHighlight`进行设置。配置项如下: +### 6、将当前行代码高亮显示(更改光标所在行的背景色) -我设置完之后,发现效果不是很明显。有待优化。 +当我们把光标放在某一行时,这一行的背景色并没有发生变化。如果想**高亮显示**当前行的代码,需要设置两步: -### 空格 or 制表符 - -VS Code 会根据你所打开的文件来决定该使用空格还是制表。也就是说,如果你的项目中使用的都是制表符,那么,当你在写新的代码时,按下tab 键后,编辑器就会识别成制表符。 +(1)在设置项里搜索`editor.renderLineHighlight`,将选项值设置为`all`或者`line`。 -常见的设置项如下: - -- **editor.detectIndentation**:自动检测(默认开启)。截图如下: +(2)在设置项里增加如下内容: -![](http://img.smyhvae.com/20190417_2205.png) - -- **editor.insertSpaces**:按 Tab 键时插入空格(默认)。截图如下: - -![](http://img.smyhvae.com/20190417_2207.png) +```json + "workbench.colorCustomizations": { + "editor.lineHighlightBackground": "#00000090", + "editor.lineHighlightBorder": "#00000000" + } +``` -- **editor.tabSize**:一个制表符默认等于四个空格。截图如下: +上面两行代码的意思是,修改光标所在行的背景色(背景色设置为全黑,透明度90%),修改光标所在行的边框色。 -![](http://img.smyhvae.com/20190417_2209.png) +### 7、改完代码后立即自动保存 -### 改完代码后立即自动保存 +**方式一**: 改完代码后,默认不会自动保存。你可以在设置项里搜索`files.autoSave`,修改配置项如下: @@ -224,7 +271,11 @@ VS Code 会根据你所打开的文件来决定该使用空格还是制表。也 上图中,我们将配置项修改为`onFocusChange`之后,那么,当光标离开该文件后,这个文件就会自动保存了。**非常方便**。 -### 保存代码后,是否立即格式化 +**方式二**: + +当然,你也可以直接在菜单栏选择「文件-自动保存」。勾选年后,当你写完代码后,文件会立即实时保存。 + +### 8、保存代码后,是否立即格式化 保存代码后,默认**不会立即**进行代码的格式化。你可以在设置项里搜索`editor.formatOnSave`查看该配置项: @@ -232,51 +283,43 @@ VS Code 会根据你所打开的文件来决定该使用空格还是制表。也 我觉得这个配置项保持默认就好,不用打钩。 -### 新建文件后的默认文件类型 - -当我们按下快捷键「Cmd + N」新建文件时,VS Code 默认无法识别这个文件到底是什么类型的,因此也就无法识别相应的语法高亮。如果你想修改默认的文件类型,可以在设置项里搜索`files.defaultLanguage`,设置项如下: - -![](http://img.smyhvae.com/20190417_2221.png) - -上图中的红框部分,填入你期望的默认文件类型。我填的是`html`类型,你也可以填写成 `javascript` 或者 `markdown`,或者其他的语言类型。 - -### 删除文件时,是否弹出确认框 +### 9、空格 or 制表符 -当我们在 VS Code 中删除文件时,默认会弹出确认框。如果你想修改设置,可以在设置项里搜索`xplorer.confirmDelete`。截图如下: +VS Code 会根据你所打开的文件来决定该使用空格还是制表。也就是说,如果你的项目中使用的都是制表符,那么,当你在写新的代码时,按下tab 键后,编辑器就会识别成制表符。 -![](http://img.smyhvae.com/20190418_1758.png) +常见的设置项如下: -我建议这个设置项保持默认的打钩就好,不用修改。删除文件前的弹窗提示,也是为了安全考虑,万一手贱不小心删了呢? +- **editor.detectIndentation**:自动检测(默认开启)。截图如下: -## 命令面板的使用 +![](http://img.smyhvae.com/20190417_2205.png) -Mac用户按住快捷键 `Cmd+Shift+P` (Windows用户按住快捷键`Ctrl+Shift+P`),可以打开命令面板。效果如下: +- **editor.insertSpaces**:按 Tab 键时插入空格(默认)。截图如下: -![](http://img.smyhvae.com/20190329_1750_2.png) +![](http://img.smyhvae.com/20190417_2207.png) -如果们需要修改一些设置项,可以通过「命令面板」来操作,效率会更高。这里列举一些。 +- **editor.tabSize**:一个制表符默认等于四个空格。截图如下: -### 字体设置 +![](http://img.smyhvae.com/20190417_2209.png) -在命令面板输入“字体”,可以进行字体的设置,效果如下: +### 10、新建文件后的默认文件类型 -![](http://img.smyhvae.com/20190329_2110.png) +当我们按下快捷键「Cmd + N」新建文件时,VS Code 默认无法识别这个文件到底是什么类型的,因此也就无法识别相应的语法高亮。如果你想修改默认的文件类型,可以在设置项里搜索`files.defaultLanguage`,设置项如下: -当然,你也可以在菜单栏,选择「首选项-设置-常用设置」,在这个设置项里修改字体大小。 +![](http://img.smyhvae.com/20190417_2221.png) -### 快捷键设置 +上图中的红框部分,填入你期望的默认文件类型。我填的是`html`类型,你也可以填写成 `javascript` 或者 `markdown`,或者其他的语言类型。 -在命令面板输入“快捷键”,就可以进入快捷键的设置。 +### 11、删除文件时,是否弹出确认框 -### 大小写转换 +当我们在 VS Code 中删除文件时,默认会弹出确认框。如果你想修改设置,可以在设置项里搜索`xplorer.confirmDelete`。截图如下: -选中文本后,在命令面板中输入`transfrom`,就可以修改文本的大小写了。 +![](http://img.smyhvae.com/20190418_1758.png) -![](http://img.smyhvae.com/20190414_1751.png) +我建议这个设置项保持默认的打钩就好,不用修改。删除文件前的弹窗提示,也是为了安全考虑,万一手贱不小心删了呢? -## VS Code 的常用技巧 +## 六、VS Code 设置-高级进阶 -### 文件对比 +### 1、文件对比 VS Code 默认支持**对比两个文件的内容**。选中两个文件,然后右键选择「将已选项进行比较」即可,效果如下: @@ -286,13 +329,13 @@ VS Code自带的对比功能并不够强大,我们可以安装插件`compareit ![](http://img.smyhvae.com/20190329_1757.png) -### 查找某个函数在哪些地方被调用了 +### 2、查找某个函数在哪些地方被调用了 比如我已经在`a.js`文件里调用了 `foo()`函数。那么,如果我想知道`foo()`函数在其他文件中是否也被调用了,该怎么做呢? 做法如下:在 `a.js` 文件里,选中`foo()`函数(或者将光标放置在`foo()`函数上),然后按住快捷键「Shift + F12」,就能看到 `foo()`函数在哪些地方被调用了,比较实用。 -### 鼠标操作 +### 3、鼠标操作 - 在当前行的位置,鼠标三击,可以选中当前行。 @@ -300,7 +343,7 @@ VS Code自带的对比功能并不够强大,我们可以安装插件`compareit - 在某个**行号**的位置,**上下移动鼠标,可以选中多行**。 -### 重构 +### 4、重构 重构分很多种,我们来举几个例子。 @@ -312,15 +355,15 @@ VS Code自带的对比功能并不够强大,我们可以安装插件`compareit 选中某一段代码,这个时候,代码的左侧会出现一个「灯泡图标」,点击这个图标,就可以把这段代码提取为一个单独的函数。 -### 在当前文件中搜索 +### 5、在当前文件中搜索 在上面的快捷键列表中,我们已经知道如下快捷键: - Cmd + F(Win用户是Ctrl + F):在当前文件中搜索,光标在搜索框里 -- Cmd + G(Win用户是 F3):在当前文件中搜索,光标仍在编辑器里 +- Cmd + G(Win用户是 F3):在当前文件中搜索,光标仍停留在编辑器里 -但是,你可能会注意到,搜索框里有很多按钮,每个按钮都对应着不同的功能,如下图所示: +另外,你可能会注意到,搜索框里有很多按钮,每个按钮都对应着不同的功能,如下图所示: ![](http://img.smyhvae.com/20190415_2052.png) @@ -328,11 +371,9 @@ VS Code自带的对比功能并不够强大,我们可以安装插件`compareit 「在选定内容中查找」这个功能还是比较实用的。你也可以在设置项里搜索 `editor.find.autoFindInSelection`,勾选该设置项后,那么,当你选中指定内容后,然后按住「Cmd + F」,就可以**自动**只在这些内容里进行查找。该设置项如下图所示: -![](http://img.smyhvae.com/20190415_2116.png) +![](http://img.smyhvae.com/20191108_1655.png) -正常情况下,我建议这个设置项不用勾选。 - -### 全局搜索 +### 6、全局搜索 在上面的快捷键列表中,我们已经知道如下快捷键: @@ -342,7 +383,7 @@ VS Code自带的对比功能并不够强大,我们可以安装插件`compareit 上图中,你可以点击红框部分,展开更多的配置项。 -### Git版本管理 +### 7、Git版本管理 VS Code 自带了 Git 版本管理,如下图所示: @@ -353,7 +394,7 @@ VS Code 自带了 Git 版本管理,如下图所示: 与此同时,我建议安装插件`GitLens`,它是 VS Code 中我最推荐的一个插件,简直是Git神器,码农必备。 -### 将工作区放大/缩小 +### 8、将工作区放大/缩小 我们在上面的设置项里修改字体大小后,仅仅只是修改了代码的字体大小。 @@ -363,7 +404,7 @@ VS Code 自带了 Git 版本管理,如下图所示: 如果你想恢复默认的工作区大小,可以在命令面板输入`重置缩放`(英文是`reset zoom`) -### 创建多层子文件夹 +### 9、创建多层子文件夹 我们可以在新建文件夹的时候,如果直接输入`aa/bb/cc`,比如: @@ -374,8 +415,7 @@ VS Code 自带了 Git 版本管理,如下图所示: ![](http://img.smyhvae.com/20190418_2023.png) - -### .vscode 文件夹的作用 +### 10、.vscode 文件夹的作用 如果你发现项目的根目录下有一个`.vscode`文件夹,说明这个文件夹代表的是当前项目的配置。 @@ -385,20 +425,19 @@ VS Code 自带了 Git 版本管理,如下图所示: - `sftp.json`:ftp文件传输的配置。 -### 自带终端 +### 11、自带终端 我们可以按下「Ctrl + `」打开 VS Code 自带的终端。我认为内置终端并没有那么好用,我更建议你使用第三方的终端 **item2**。 -### markdown语法支持 +### 12、markdown语法支持 VS Code自带 markdown 语法高亮,写完 md 文件之后,你可以点击右上角的按钮进行预览,如下图所示: ![](http://img.smyhvae.com/20190418_1907.png) - 你也可以在控制面板输入`Markdown: 打开预览`,直接全屏预览 markdown文件。 -### Emmet in VS Code +### 13、Emmet in VS Code `Emmet`可以极大的提高 html 和 css 的编写效率,它提供了一种非常简练的语法规则。 @@ -417,78 +456,47 @@ VS Code自带 markdown 语法高亮,写完 md 文件之后,你可以点击 VS Code 默认支持 Emmet。更多 Emmet 语法规则,请自行查阅。 -## 插件扩展 / 插件推荐 +## 七、VS Code 插件推荐 VS Code 有一个很强大的功能就是支持插件扩展。 - -![](http://img.smyhvae.com/20190418_1932.png) - +![](http://img.smyhvae.com/20191108_1553_2.png) 上图中,点击红框部分,即可在输入框里,查找你想要的插件名,然后进行安装。 我来列举几个常见的插件,这些插件都很实用。 -### GitLens +### GitLens 【荐】 我强烈建议你安装插件`GitLens`,它是 VS Code 中我最推荐的一个插件,简直是Git神器,码农必备。如果你不知道,那真是out了。 GitLens 在 Git 管理上有很多强大的功能,比如: +- 将光标放置在代码的当前行,可以看到这样代码的提交者是谁,以及提交时间。这一点,是 GitLens 最便捷的功能。 + - 查看某个 commit 的代码改动记录 - 查看不同的分支 -- 可以将两个 commit 进行代码对比,甚至可以将两个 branch 分支进行代码比对。这一点,简直是 GitLens 最强大的功能。 - -### RemoteHub - -不要惊讶,RemoteHub 和 GitLens 是同一个作者开发出来的。 - -`RemoteHub`插件的作用是:可以在本地查看 GitHub 网站上的代码,而不需要将代码下载到本地。 - -![](http://img.smyhvae.com/20190418_1937.png) - -这个插件目前使用的人还不多,赶紧安装起来尝尝鲜吧。 - -### TODO Highlight - -写代码过程中,突然发现一个Bug,但是又不想停下来手中的活,以免打断思路,怎么办?按照代码规范,我们一般是在代码中加个TODO注释。比如:(注意,一定要写成大写`TODO`,而不是小写的`todo`) - -``` -//TODO:这里有个bug,我一会儿再收拾你 -``` - -或者: - -``` -//FIXME:我也不知道为啥, but it works only that way. -``` - -安装了插件 `TODO Highlight`之后,按住「Cmd + Shift + P」打开命令面板,输入「Todohighlist」,选择相关的命令,我们就可以看到一个 todoList 的清单。 +- 可以将两个 commit 进行代码对比 +- 甚至可以将两个 branch 分支进行整体的代码对比。这一点,简直是 GitLens 最强大的功能。当我们在不同分支review代码的时候,就可以用到这一招。 ### Bracket Pair Colorizer 2:突出显示成对的括号【荐】 -`Bracket Pair Colorizer 2`插件:以不同颜色显示括号并用连线标注括号范围。 - -### Rainbow Brackets: +`Bracket Pair Colorizer 2`插件:以不同颜色显示成对的括号,并用连线标注括号范围。 -`Rainbow Brackets`插件:突出显示成对的括号。 - -### indent-rainbow:突出显示缩进 - -`indent-rainbow`插件:突出显示缩进。 - -安装完成后,效果如下图所示: - -![](http://img.smyhvae.com/20190418_1958.png) +另外,还有个`Rainbow Brackets`插件,也可以突出显示成对的括号。 ### sftp:文件传输 如果你需要将本地文件通过 ftp 的形式上传到局域网的服务器,可以安装`sftp`这个插件,很好用。在公司会经常用到。 -安装完成后,输入快捷键「cmd+shift+P」弹出命令面板,然后输入`sftp:config`,回车,当前工程的`.vscode`文件夹下就会自动生成一个`sftp.json`文件,我们需要在这个文件里配置的内容可以是: +步骤如下: + +(1)安装插件`sftp`。 + +(2)配置 `sftp.json`文件。 插件安装完成后,输入快捷键「cmd+shift+P」弹出命令面板,然后输入`sftp:config`,回车,当前工程的`.vscode`文件夹下就会自动生成一个`sftp.json`文件,我们需要在这个文件里配置的内容可以是: - `host`:服务器的IP地址 @@ -504,7 +512,7 @@ GitLens 在 Git 管理上有很多强大的功能,比如: ```json { - "host": "", //服务器ip + "host": "192.168.xxx.xxx", //服务器ip "port": 22, //端口,sftp模式是22 "username": "", //用户名 "password": "", //密码 @@ -532,6 +540,104 @@ GitLens 在 Git 管理上有很多强大的功能,比如: } ``` +(3)在 VS Code的当前文件里,选择「右键 -> upload」,就可以将本地的代码上传到 指定的 ftp 服务器上(也就是在上方 `host` 中配置的服务器ip)。 + +我们还可以选择「右键 -> Diff with Remote」,就可以将本地的代码和 ftp 服务器上的代码做对比。 + +### Project Manager + +工作中,我们经常会来回切换多个项目,每次都要找到对应项目的目录再打开,比较麻烦。Project Manager插件可以解决这样的烦恼,它提供了专门的视图来展示你的项目,我们可以把常用的项目保存在这里,需要时一键切换,十分方便。 + +### open in browser + +安装`open in browser`插件后,在 HTML 文件中「右键选择 --> Open in Default Browser」,即可在浏览器中预览网页。 + + + +### highlight-icemode:选中相同的代码时,让高亮显示更加明显【荐】 + +VSCode自带的高亮显示,实在是不够显眼。用插件支持一下吧。 + +所用了这个插件之后,VS Code自带的高亮就可以关掉了: + +在用户设置里添加`"editor.selectionHighlight": false`即可。 + +参考链接:[vscode 选中后相同内容高亮插件推荐](https://blog.csdn.net/palmer_kai/article/details/79548164) + +### Color Manager + +css 颜色管理。 + +### TODO Highlight + +写代码过程中,突然发现一个Bug,但是又不想停下来手中的活,以免打断思路,怎么办?按照代码规范,我们一般是在代码中加个TODO注释。比如:(注意,一定要写成大写`TODO`,而不是小写的`todo`) + +``` +//TODO:这里有个bug,我一会儿再收拾你 +``` + +或者: + +``` +//FIXME:我也不知道为啥, but it works only that way. +``` + +安装了插件 `TODO Highlight`之后,按住「Cmd + Shift + P」打开命令面板,输入「Todohighlist」,选择相关的命令,我们就可以看到一个 todoList 的清单。 + + +### WakaTime 【荐】 + +统计写代码的时间。 + + +### Code Time + +`Code Time`插件:记录编程时间,统计代码行数。 + +安装该插件后,VS Code 底部的状态栏右下角可以看到时间统计。点击那个位置之后,选择「Code Time Dashboard」,即可查看统计结果。 + +备注:团长试了一下这个 code time 插件,发现统计结果不是很准。 + + +### Markdown Preview Github Styling 【荐】 + +以 GitHub 风格预览 Markdown 样式。 + +### Markdown Preview Enhanced + +预览 Markdown 样式。 + + +### Settings Sync + +- 地址: + +- 作用:多台设备之间,同步 VS Code 配置。通过登录 GitHub 账号来使用这个同步工具。 + +### vscode-syncing + +- 地址: + +- 作用:多台设备之间,同步 VS Code 配置。 + +### indent-rainbow:突出显示缩进 + +`indent-rainbow`插件:突出显示缩进。 + +安装完成后,效果如下图所示: + +![](http://img.smyhvae.com/20190418_1958.png) + +### RemoteHub + +不要惊讶,RemoteHub 和 GitLens 是同一个作者开发出来的。 + +`RemoteHub`插件的作用是:可以在本地查看 GitHub 网站上的代码,而不需要将代码下载到本地。 + +![](http://img.smyhvae.com/20190418_1937.png) + +这个插件目前使用的人还不多,赶紧安装起来尝尝鲜吧。 + ### Live Share:实时编码分享 `Live Share`这个神奇的插件是由微软官方出品,它的作用是:**实时编码分享**。也就是说,它可以实现你和你的同伴一起写代码。这绝对就是**结对编程**的神器啊。 @@ -546,25 +652,20 @@ GitLens 在 Git 管理上有很多强大的功能,比如: ![](http://img.smyhvae.com/20190418_2005.png) -### Settings Sync - -- 地址: - -- 作用:多台设备之间,同步 VS Code 配置。 - ### vscode-pigments css颜色高亮显示。 -### vscode-syncing +## 八、主题插件 -- 地址: +- [One Dark Pro](https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme) -- 作用:多台设备之间,同步 VS Code 配置。 +- [Snazzy Plus](https://marketplace.visualstudio.com/items?itemName=akarlsten.vscode-snazzy-akarlsten) -## 参考链接 +- [Dainty](https://marketplace.visualstudio.com/items?itemName=alexanderte.dainty-vscode) + +- `SynthWave '84` -- [https://segmentfault.com/a/1190000012811886](https://segmentfault.com/a/1190000012811886) ## 最后一段 @@ -572,3 +673,18 @@ css颜色高亮显示。 同时,你也可以关注我在 GitHub 上的 [前端入门项目](https://github.com/qianguyihao/Web),超级详细和真诚。 +## 参考链接 + +- [VS Code 折腾记 - (16) 推荐一波实用的插件集](https://juejin.im/post/5d74eb5c51882525017787d9) + +- [VSCode前端必备插件,有可能你装了却不知道如何使用?](https://juejin.im/post/5db66672f265da4d0e009aad) + +- [能让你开发效率翻倍的 VSCode 插件配置(上)](https://juejin.im/post/5a08d1d6f265da430f31950e) + +- [https://segmentfault.com/a/1190000012811886](https://segmentfault.com/a/1190000012811886) + +- [「Vscode」打造类sublime的高颜值编辑器](https://idoubi.cc/2019/07/08/vscode-sublime-theme/) + + + + diff --git "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/02-Git\347\232\204\344\275\277\347\224\250.md" "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/02-Git\347\232\204\344\275\277\347\224\250.md" index 65af486e..f7c10794 100644 --- "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/02-Git\347\232\204\344\275\277\347\224\250.md" +++ "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/02-Git\347\232\204\344\275\277\347\224\250.md" @@ -174,8 +174,14 @@ git cherry-pick commit1 - [Mac 运行sh文件,也就是传说中的shell脚本](https://blog.csdn.net/yusufolu9/article/details/53706269) +在执行`./email.sh`后,如果出现`permission denied`的错误,可以先执行`chmod 777 email.sh`,修改文件的权限。 + ## git客户端推荐 +市面上的Git客户端我基本都用过了,我最推荐的一款Git客户端是:[Tower](https://www.git-tower.com) 或者 [Fork](https://git-fork.com)。 + +- GitUp: + 20180623时,网上看了下Git客户端的推荐排名: ![](http://img.smyhvae.com/20180623_1210.png) @@ -187,7 +193,6 @@ s ![](http://img.smyhvae.com/20180623_1305.png) -上面的Git客户端我基本都用过了,我最推荐的一款Git客户端是:[Tower](https://www.git-tower.com) 或者 [Fork](https://git-fork.com)。 diff --git "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/03-GitHub\347\232\204\344\275\277\347\224\250.md" "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/03-GitHub\347\232\204\344\275\277\347\224\250.md" deleted file mode 100644 index 54bdae8b..00000000 --- "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/03-GitHub\347\232\204\344\275\277\347\224\250.md" +++ /dev/null @@ -1,13 +0,0 @@ - - -## GitHub的使用 - - -### GitHub添加wiki - - - -参考链接: - - -- \ No newline at end of file diff --git "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/05-GitHub\347\232\204\344\275\277\347\224\250.md" "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/05-GitHub\347\232\204\344\275\277\347\224\250.md" new file mode 100644 index 00000000..370baf9e --- /dev/null +++ "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/05-GitHub\347\232\204\344\275\277\347\224\250.md" @@ -0,0 +1,28 @@ + + +## GitHub的使用 + + +### GitHub添加wiki + +参考链接: + + +- + +### GitHub项目添加 licence + +参考链接: + +- + + + +### GitHub 引用图片的另一种方式 + +参考链接: + +- [关于markdown文件插入图片遇到的小问题和解决办法](https://www.cnblogs.com/cxint/p/7200164.html) + + + diff --git "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/03-VS Code\347\232\204\344\275\277\347\224\250\347\247\257\347\264\257.md" "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/05-VS Code\347\232\204\344\275\277\347\224\250\347\247\257\347\264\257.md" similarity index 100% rename from "00-\345\211\215\347\253\257\345\267\245\345\205\267/03-VS Code\347\232\204\344\275\277\347\224\250\347\247\257\347\264\257.md" rename to "00-\345\211\215\347\253\257\345\267\245\345\205\267/05-VS Code\347\232\204\344\275\277\347\224\250\347\247\257\347\264\257.md" diff --git "a/00-\345\211\215\347\253\257\345\267\245\345\205\267/03-Emmet in VS Code.md" "b/00-\345\211\215\347\253\257\345\267\245\345\205\267/07-Emmet in VS Code.md" similarity index 100% rename from "00-\345\211\215\347\253\257\345\267\245\345\205\267/03-Emmet in VS Code.md" rename to "00-\345\211\215\347\253\257\345\267\245\345\205\267/07-Emmet in VS Code.md" diff --git "a/01-HTML/01-\350\256\244\350\257\206Web\345\222\214Web\346\240\207\345\207\206.md" "b/01-HTML/01-\350\256\244\350\257\206Web\345\222\214Web\346\240\207\345\207\206.md" new file mode 100644 index 00000000..8f059f7e --- /dev/null +++ "b/01-HTML/01-\350\256\244\350\257\206Web\345\222\214Web\346\240\207\345\207\206.md" @@ -0,0 +1,73 @@ + + +## Web、网页、浏览器 + +### Web + +Web(World Wide Web)即全球广域网,也称为万维网。 + +我们常说的`Web端`就是网页端。 + +### 网页 + +**网页是构成网站的基本元素**。网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。 + +我们在浏览器上输入网址后,打开的任何一个页面,都是属于网页。 + +### 浏览器 + +浏览器是网页运行的平台,常见的浏览器有谷歌(Chrome)、Safari、火狐(Firefox)、IE、Edge、Opera等。 + +关于浏览器的详细介绍,可以看下一篇文章:《[浏览器的介绍](https://github.com/qianguyihao/Web/blob/master/01-html/02-%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E4%BB%8B%E7%BB%8D.md)》 + + + + +## Web标准 + + +### W3C组织 + +**W3C**:万维网联盟组织,用来制定web标准的机构(组织)。 + +W3C 万维网联盟是国际最著名的标准化组织。1994年成立后,至今已发布近百项相关万维网的标准,对万维网发展做出了杰出的贡献。 + +W3C 组织就类似于现实世界中的联合国。 + +为什么要遵循WEB标准呢?因为很多浏览器的浏览器内核不同,导致页面解析出来的效果可能会有差异,给开发者增加无谓的工作量。因此需要指定统一的标准。 + +### Web 标准 + +**Web标准**:制作网页要遵循的规范。 + +Web标准不是某一个标准,而是由W3C组织和其他标准化组织制定的一系列标准的集合。 + +**1、Web标准包括三个方面**: + +- 结构标准(HTML):用于对网页元素进行整理和分类。 + +- 表现标准(CSS):用于设置网页元素的版式、颜色、大小等外观样式。 + +- 行为标准(JS):用于定义网页的交互和行为。 + +根据上面的Web标准,可以将 Web前端分为三层,如下。 + +**2、Web前端分三层**: + +- HTML(HyperText Markup Language):超文本标记语言。从**语义**的角度描述页面的**结构**。相当于人的身体组织结构。 +- CSS(Cascading Style Sheets):层叠样式表。从**审美**的角度美化页面的**样式**。相当于人的衣服和打扮。 +- JS:JavaScript。从**交互**的角度描述页面的**行为**。相当于人的动作,让人有生命力。 + +**3、打个比方**:(拿黄渤举例) + +HTML 相当于人的身体组织结构: + +![](http://img.smyhvae.com/20200322_1250.png) + +CSS 相当于人的衣服和打扮: + +![](http://img.smyhvae.com/20200322_1251.png) + +JS 相当于人的行为: + +![](http://img.smyhvae.com/20200322_2220.gif) \ No newline at end of file diff --git "a/01-HTML/02-\346\265\217\350\247\210\345\231\250\347\232\204\344\273\213\347\273\215.md" "b/01-HTML/02-\346\265\217\350\247\210\345\231\250\347\232\204\344\273\213\347\273\215.md" new file mode 100644 index 00000000..c04f77f1 --- /dev/null +++ "b/01-HTML/02-\346\265\217\350\247\210\345\231\250\347\232\204\344\273\213\347\273\215.md" @@ -0,0 +1,106 @@ + + +## 常见的浏览器 + +浏览器是网页运行的平台,常见的浏览器有谷歌(Chrome)、Safari、火狐(Firefox)、IE、Edge、Opera等。如下图所示: + +![](http://img.smyhvae.com/20191204_1900.png) + +我们重点需要学习的是 Chrome 浏览器。 + +## 浏览器的市场占有份额 + +浏览器的市场占有份额: + +![](http://img.smyhvae.com/20200322_1058.png) + +上面这张图的统计时间是2020年2月。 + +## 浏览器的组成 + +浏览器分成两部分: + +- 1、渲染引擎(即:浏览器内核) + +- 2、JS 引擎 + +### 1、渲染引擎(浏览器内核) + +浏览器所采用的「渲染引擎」也称之为「浏览器内核」,用来解析 HTML与CSS。渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。 + +**渲染引擎是浏览器兼容性问题出现的根本原因。** + +渲染引擎的英文叫做 Rendering Engine。通俗来说,它的作用就是:读取网页内容,计算网页的显示方式并显示在页面上。 + +常见浏览器的内核如下: + +|浏览器 | 内核| +|:-------------:|:-------------:| +| chrome | Blink | +| 欧鹏 | Blink | +|360安全浏览器| Blink| +|360极速浏览器| Blink| +|Safari|Webkit| +|Firefox 火狐|Gecko| +|IE| Trident | + +备注:360的浏览器,以前使用的IE浏览器的Trident内核,但是现在已经改为使用 chrome 浏览器的 Blink内核。 + +另外,移动端的浏览器内核是什么?大家可以自行查阅资料。 + + + +### 2、JS 引擎 + +也称为 JS 解释器。 用来解析网页中的JavaScript代码,对其处理后再运行。 + +浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行时会逐行解释源码(转换为机器语言),然后由计算机去执行。 + +浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行。所以 JavaScript 语言归为脚本语言,会逐行解释执行。 + +常见浏览器的 JS 引擎如下: + +|浏览器 | JS 引擎| +|:-------------:|:-------------| +|chrome / 欧鹏 | V8 | +|Safari|Nitro| +|Firefox 火狐|SpiderMonkey(1.0-3.0)/ TraceMonkey(3.5-3.6)/ JaegerMonkey(4.0-)| +|Opera|Linear A(4.0-6.1)/ Linear B(7.0-9.2)/ Futhark(9.5-10.2)/ Carakan(10.5-)| +|IE|Trident | + +参考链接: + +- [主流浏览器内核及JS引擎](https://juejin.im/post/5ada727c518825670b33a584) + +## 浏览器工作原理 + +> 这一小段有些深入,小白可以暂时跳过,以后再来看。 + +![](http://img.smyhvae.com/20180124_1700.png) + +1、User Interface 用户界面,我们所看到的浏览器 + +2、Browser engine 浏览器引擎,用来查询和操作渲染引擎 + +3、Rendering engine 用来显示请求的内容,负责解析HTML、CSS + +4、Networking 网络,负责发送网络请求 + +5、JavaScript Interpreter(解析者) JavaScript解析器,负责执行JavaScript的代码 + +6、UI Backend UI后端,用来绘制类似组合框和弹出窗口 + +7、Data Persistence(持久化) 数据持久化,数据存储 cookie、HTML5中的sessionStorage + +参考链接: + +- + + +## 我的公众号 + +想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**。 + +扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外: + +![](http://img.smyhvae.com/20200101.png) diff --git "a/01-HTML/03-\345\210\235\350\257\206HTML.md" "b/01-HTML/03-\345\210\235\350\257\206HTML.md" new file mode 100644 index 00000000..1b8aaba5 --- /dev/null +++ "b/01-HTML/03-\345\210\235\350\257\206HTML.md" @@ -0,0 +1,520 @@ + + + +## 编辑器相关 + +前端开发的编辑器软件,我首先推荐 VS Code,其次推荐Sublime Text。 + +有人说 WebStorm 也不错?但真实情况是,自从VS Code 问世之后,用 WebStorm 的人越来越少了。 + +PS:文件的后缀名不能决定文件格式,只能决定打开文件打开的方式。 + +### VS Code 的使用 + +详情请移步至:[第一次使用VS Code时你应该知道的一切配置](https://github.com/qianguyihao/Web/blob/master/00-%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.md) + +### Sublime Text 的使用 + +详情请移步至:[Sublime Text使用技巧](https://github.com/qianguyihao/Mac/blob/master/05-%E5%85%A8%E5%B9%B3%E5%8F%B0%E8%BD%AF%E4%BB%B6/Sublime%20Text%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7.md) + +## HTML的概述 + +### HTML的概念 + +**HTML** 全称为 HyperText Markup Language,译为**超文本标记语言**。 + +HTML 不是一种编程语言,是一种描述性的**标记语言**。 + +**作用**:HTML是负责描述文档**语义**的语言。 + +### 概念:超文本 + +所谓的超文本,有两层含义: + +(1)图片、音频、视频、动画、多媒体等内容,成为超文本,因为它们超出了文本的限制。 + +(2)不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件进行连接。即:超级链接文本。 + +### 概念:标记语言 + +HTML 不是一种编程语言,是一种描述性的**标记语言**。这主要有两层含义: + +(1)**标记语言是一套标记标签**。比如:标签``表示超链接、标签``表示图片、标签`

`表示一级标题等等,它们都是属于 HTML 标签。 + +说的通俗一点就是:网页是由网页元素组成的,这些元素是由 HTML 标签描述出来,然后通过浏览器解析,就可以显示给用户看了。 + +(2)编程语言是有编译过程的,而标记语言没有编译过程,HTML标签是直接由浏览器解析执行。 + +### HTML是负责描述文档语义的语言 + +HTML 格式的文件是一个纯本文文件(就是用txt文件改名而成),用一些标签来描述语义,这些标签在浏览器页面上是无法直观看到的,所以称之为“超文本标记语言”。 + +接下来,我们需要学习 HTML 中的很多“标签对儿”,这些“标签对儿”能够给文本不同的语义。 + +比如,面试的时候问你,`

` 标签有什么作用? + +- 正确答案:给文本增加主标题的语义。 +- 错误答案:给文字加粗、加黑、变大。 + +关乎“语义”的更深刻理解,等接下来我们学习了各种标签,就明白了。 + +## HTML的历史 + +![html中标签发展趋势](http://img.smyhvae.com/20151001_1001.png) + +其中,我们专门来对XHTML做一个介绍。 + +**XHTML介绍:** +XHTML:Extensible Hypertext Markup Language,可扩展超文本标注语言。 +XHTML的主要目的是为了**取代HTML**,也可以理解为HTML的升级版。 +HTML的标记书写很不规范,会造成其它的设备(ipad、手机、电视等)无法正常显示。 +XHTML与HTML4.0的标记基本上一样。 +XHTML是**严格的、纯净的**HTML。 + +我们稍后将对XHTML的编写规范进行介绍。 + +## HTML的专有名词 + +- 网页 :由各种标记组成的一个页面就叫网页。 +- 主页(首页) : 一个网站的起始页面或者导航页面。 +- 标记: 比如`

`称为开始标记 ,`

`称为结束标记,也叫标签。每个标签都规定好了特殊的含义。 +- 元素:比如`

内容

`称为元素. +- 属性:给每一个标签所做的辅助信息。 +- XHTML:符合XML语法标准的HTML。 +- DHTML:dynamic,动态的。`javascript + css + html`合起来的页面就是一个 DHTML。 +- HTTP:超文本传输协议。用来规定客户端浏览器和服务端交互时数据的一个格式。SMTP:邮件传输协议,FTP:文件传输协议。 + +## 书写第一个 HTML 页面 + +我们打开 VS Code 软件,新建一个文件,名叫`test.html`(注意,文件名是`test`,后缀名是`html`),保存到本地。 + +紧接着,在文件里,输入`html:5`,然后按一下键盘上的`Tab`键,就可以自动生成如下内容: + +```html + + + + + + Document + + + + + +``` + +上面的内容,就是 html 页面的骨架。我们在此基础之上,新增几个标签,完整代码如下: + +```html + + + + + + Document + + +

我是三级标题

+ +
我是超链接,可以点击一下 + + + +``` + +标签写完之后,我们用 chrome 浏览器打开上面这个`test.html`文件,看看页面效果: + +到此,第一个简单的 HTML 页面就写完了。是不是很有成就感? + + +## HTML结构详解 + +HTML标签通常是成对出现的(**双边标记**),比如 `
` 和 `
`;也有少部分单标签(**单边标记**),如:`
`、`
`和``等。 + +属性与标记之间、各属性之间需要以空格隔开。属性值以双引号括起来。 + + +#### html骨架标签分类 + +| 标签名 | 定义 | 说明 | +| ---------------- | :----: | :----------------------------- | +| `` | HTML标签 | 页面中最大的标签,我们成为根标签 | +| `` | 文档的头部 | 注意在head标签中我们必须要设置的标签是title | +| `` | 文档的标题 | 让页面拥有一个属于自己的网页标题 | +| `` | 文档的主体 | 元素包含文档的所有内容,页面内容 基本都是放到body里面的 | + + +### 快速生成 html 的骨架 + +**方式1**:在 VS Code 中新建 html 文件,输入`html:5`,按 `Tab`键后,自动生成的代码如下: + +```html + + + + + + + Document + + + + + + +``` + +**方式2**:在Sublime Text中安装`Emmet`插件。新建html文件,输入`html:5`,按`Tab`键后,自动生成的代码如下: + +```html + + + + + Document + + + + + +``` + +**方式3**:在Sublime Text中安装`Emmet`插件。新建html文件,输入`html:xt`,按`Tab`键后,自动生成的代码如下: + +```html + + + + + Document + + + + + +``` + +上面的方式2和方式3中,我们会发现,第一行的内容有些不太一样,这就是我们接下来要讲的**文档声明头**。 + + + + + +### 1、文档声明头 + +任何一个标准的HTML页面,第一行一定是一个以``开头的语句。这一行,就是文档声明头,即 DocType Declaration,简称DTD。 + +**DTD可告知浏览器文档使用哪种 HTML 或 XHTML 规范**。 + +#### HTML4.01有哪些规范呢? + +**HTML4.01**这个版本是IE6开始兼容的。**HTML5是IE9开始兼容的**。如今,手机、移动端的网页,就可以使用HTML5了,因为其兼容性更高。 + +说个题外话,html1 至 html3 是美国军方以及高等研究所用的,并未对外公开。 + +HTML4.01里面有两大种规范,每大种规范里面又各有3种小规范。所以一共6种规范(见下图)。 + +HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己有一些规定不严谨,比如,标签是否可以用大写字母呢?`

`所以,HTML就觉得,把一些规范严格的标准,又制定了一个XHTML1.0。在XHTML中的字母X,表示“严格的”。 + +总结一下,HTML4.01一共有6种DTD。说白了,HTML的第一行语句一共有6种情况: + +![](http://img.smyhvae.com/20170629_1600.png) + +下面对上图中的三种小规范进行解释: + +**strict**: + +表示“严格的”,这种模式里面的要求更为严格。这种严格体现在哪里?有一些标签不能使用。 +比如,u标签,就是给一个本文加下划线,但是这和HTML的本质有冲突,因为HTML最好是只负责语义,不要负责样式,而u这个下划线是样式。所以,在strict中是不能使用u标签的。 + +那怎么给文本增加下划线呢?今后将使用css属性来解决。 + +XHTML1.0更为严格,因为这个体系本身规定比如标签必须是小写字母、必须严格闭合标签、必须使用引号引起属性等等。 + +**Transitional**:表示“普通的”,这种模式就是没有一些别的规范。 + +**Frameset**:表示“框架”,在框架的页面使用。 + +在sublime输入的html:xt,x表示XHTML,t表示transitional。 + +在HTML5中极大的简化了DTD,也就是说HTML5中就没有XHTML了。HTML5的DTD(文档声明头)如下: + +``` + +``` + +### 2、页面语言 `lang` + +下面这行标签,用于指定页面的语言类型: + +```html + +``` + +最常见的语言类型有两种: + +- en:定义页面语言为英语。 + +- zh-CN:定义页面语言为中文。 + +### 2、头标签 `head` + +#### html5 的比较完整的骨架: + +```html + + + + + + + + + + Document + + + + + +``` + +面试题: + +- 问:网页的head标签里面,表示的是页面的配置,有什么配置? +- 答:字符集、关键词、页面描述、页面标题、IE适配、视口、iPhone小图标等等。 + +头标签内部的常见标签如下: + + - ``:指定整个网页的标题,在浏览器最上方显示。 + - `<base>`:为页面上的所有链接规定默认地址或默认目标。 + - `<meta>`:提供有关页面的基本信息 + - `<body>`:用于定义HTML文档所要显示的内容,也称为主体标签。我们所写的代码必须放在此标签內。 + - `<link>`:定义文档与外部资源的关系。 + +**meta 标签**: + +meta表示“元”。“元”配置,就是表示基本的配置项目。 + +常见的几种 meta 标签如下: + +(1)字符集 charset: + +```html +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +``` + +字符集用meta标签中的`charset`定义,charset就是charactor set(即“字符集”),即**网页的编码方式**。 + +**字符集**(Character set)是多个字符的集合。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。 + +上面这行代码非常关键, 是必须要写的代码,否则可能导致乱码。比如你保存的时候,meta写的和声明的不匹配,那么浏览器就是乱码。 + +utf-8是目前最常用的字符集编码方式,常用的字符集编码方式还有gbk和gb2312等。关于“编码方式”,我们在下一段会详细介绍。 + +(2)视口 viewport: + +```html + <meta name="viewport" content="width=device-width, initial-scale=1.0"> +``` + +`width=device-width` :表示视口宽度等于屏幕宽度。 + +viewport 这个知识点,初学者还比较难理解,以后学 Web 移动端的时候会用到。 + +(3)定义“关键词”: + +举例如下: + +```html +<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" /> +``` + +这些关键词,就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。 + +(4)定义“页面描述”: + +meta除了可以设置字符集,还可以设置关键字和页面描述。 + +只要设置Description页面描述,那么百度搜索结果,就能够显示这些语句,这个技术叫做**SEO**(search engine optimization,搜索引擎优化)。 + +设置页面描述的举例: + +```html +<meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" /> +``` + +效果如下: + +![](http://img.smyhvae.com/20170629_1743.png) + +上面的几种`<meta>`标签都不用记,但是另外还有一个`<meta>`标签是需要记住的: + +```html +<meta http-equiv="refresh" content="3;http://www.baidu.com"> +``` +上面这个标签的意思是说,3秒之后,自动跳转到百度页面。 + + +**title 标签**: + +用于设置网页标题: + +```html + <title>网页的标题 +``` +title标签也是有助于SEO搜索引擎优化的。 + +**base标签**: + +```html + +``` + +base 标签用于指定基础的路径。指定之后,所有的 a 链接都是以这个路径为基准。 + +### 3、``标签 + +``标签的属性有: + + - `bgcolor`:设置整个网页的背景颜色。 + - `background`:设置整个网页的背景图片。 + - `text`:设置网页中的文本颜色。 + - `leftmargin`:网页的左边距。IE浏览器默认是8个像素。 + - `topmargin`:网页的上边距。 + - `rightmargin`:网页的右边距。 + - `bottommargin`:网页的下边距。 + +``标签另外还有一些属性,这里用个例子来解释: + +![](http://img.smyhvae.com/2015-10-02-cnblogs_html_39.png) + +上方代码中,当我们对`点我点我`这几个字使用超链时,`link`属性表示默认显示的颜色、`alink`属性表示鼠标点击但是还没有松开时的颜色、`vlink`属性表示点击完成之后显示的颜色。效果如下: + +![](http://img.smyhvae.com/2015-10-02-cnblogs_html_05.gif) + + +## 计算机编码介绍 + +计算机,不能直接存储文字,存储的是编码。 + +计算机只能处理二进制的数据,其它数据,比如:0-9、a-z、A-Z,这些字符,我们可以定义一套规则来表示。假如:A用110表示,B用111表示等。 + +**ASCII码:** +美国发布的,用1个字节(8位二进制)来表示一个字符,共可以表示2^8=256个字符。 + 美国的国家语言是英语,只要能表示0-9、a-z、A-Z、特殊符号。 + +**ANSI编码:** +**每个国家为了显示本国的语言,都对ASCII码进行了扩展**。用2个字节(16位二进制)来表示一个汉字,共可以表示2^16=65536个汉字。例如: +中国的ANSI编码是GB2312编码(简体),对6763汉字进行编码,含600多特殊字符。另外还有GBK(简体)。 +日本的ANSI编码是JIS编码。 +台湾的ANSI编码是BIG5编码(繁体)。 + +**GBK:** +对GB2312进行了扩展,用来显示罕见的、古汉语的汉字。现在已经收录了2.1万左右。并提供了1890个汉字码位。K的含义就是“扩展”。 + +**Unicode编码(统一编码):** +用4个字节(32位二进制)来表示一个字符,想法不错,但效率太低。例如,字母A用ASCII表示的话一个字节就够,可用Unicode编码的话,得用4个字节表示,造成了空间的极大浪费。A的Unicode编码是0000 0000 0000 0000 0000 0000 0100 0000 + +**UTF-8(Unicode Transform Format)编码:** +根据字符的不同,选择其编码的长度。比如:一个字符A用1个字节表示,一个汉字用2个字节表示。 + +毫无疑问,开发中,都用**UTF-8**编码吧,准没错。 + +**中文能够使用的字符集两种:** + +- 第一种:UTF-8。UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,比如阿拉伯文、汉语、鸟语…… + +- 第二种:GBK(对GB2312进行了扩展)。gb2312 是国标,是中国的字库,里面**仅**涵盖了汉字和一些常用外文,比如日文片假名,和常见的符号。 + +字库规模: UTF-8(字很全) > gb2312(只有汉字) + +**重点1:避免乱码** + +我们用meta标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样,否则乱码(重点)。 + +拿 sublime编辑器举例,当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: `文件→ set File Encoding to → Chinese Simplified(GBK)`。VS Code 的道理一样。 + + +**重点2:UTF-8和gb2312的比较** + +保存大小:UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快) + +总结: +- UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿; +- gb2312:字少,只用中文和少数外语和符号,但是尺寸小,文件小巧。 + + +列出2个使用情形: + +1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8。如果用gb2312将无法显示日语。 +2) 你们公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。 + +我们亲测: +- qq网、网易、搜狐都是使用gb2312。这些公司,都追求显示速度。 +- 新华网藏语频道,使用的是UTF-8,保证字符集的数量。 + +我们是怎么查看网页的编码方式的呢?在浏览器中打开网页,右键,选择“查看网页源代码”,找到meta标签中的charset属性即可。 + +那么,我们为什么可以查看网页的源代码呢?因为这个打开的html网页已经存到我的临时文件夹里了,临时文件夹里的html是纯文本文件,纯文本文件自然可以查看网页的源代码。 + +## HTML的规范 + +- HTML不区分大小写,但HTML的标签名、类名、标签属性、大部分属性值建议统一用小写。 +- HTML页面的后缀名是html或者htm(有一些系统不支持后缀名长度超过3个字符,比如dos系统) + +### 1、编写XHTML的规范: + +(1)所有标记元素都要正确的嵌套,不能交叉嵌套。正确写法举例:`

` + +(2)所有的标记都必须小写。 + +(3)所有的标签都必须闭合。 + +- 双标签:`` + +- 单标签:`
` 建议写成 `
` `
` 建议转成 `
`,还有`` + +(4)所有的属性值必须加引号。`` + +(5)所有的属性必须有值。`
`、`` + +(6)XHTML文档开头必须要有DTD文档类型定义。 + +### 2、HTML的基本语法特性 + +#### (1)HTML对换行不敏感,对tab不敏感 + +HTML只在乎标签的嵌套结构,嵌套的关系。谁嵌套了谁,谁被谁嵌套了,和换行、tab无关。换不换行、tab不tab,都不影响页面的结构。 + +也就是说,HTML不是依靠缩进来表示嵌套的,而是看标签的嵌套关系。但是,我们发现有良好的缩进,代码更易读。建议大家都正确缩进标签。 + +百度为了追求极致的显示速度,所有HTML标签都没有换行、都没有缩进(tab),HTML和换不换行无关,标签的层次依然清晰,只不过程序员不可读了。如下图所示: + +![](http://img.smyhvae.com/20170629_2226.png) + +#### (2)空白折叠现象 + +HTML中所有的**文字之间**,如果有空格、换行、tab都将被折叠为一个空格显示。 + +举例如下: + +![](http://img.smyhvae.com/20170629_2230.jpg) + +#### (3)标签要严格封闭 + +标签不封闭的结果是灾难性的。 + +标签不封闭的举例如下: + +![](http://img.smyhvae.com/20170629_2245.jpg) + + +## 我的公众号 + +想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。 + +扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外: + +![](http://img.smyhvae.com/20200101.png) diff --git "a/01-HTML/04-HTML\346\240\207\347\255\276\357\274\232\346\216\222\347\211\210\346\240\207\347\255\276.md" "b/01-HTML/04-HTML\346\240\207\347\255\276\357\274\232\346\216\222\347\211\210\346\240\207\347\255\276.md" new file mode 100644 index 00000000..3fdeb205 --- /dev/null +++ "b/01-HTML/04-HTML\346\240\207\347\255\276\357\274\232\346\216\222\347\211\210\346\240\207\347\255\276.md" @@ -0,0 +1,247 @@ + + +## 本文主要内容 + +排版标签: + +- `

` + +- `

` + +- `


` + +- `
` + +- `
` + +- `` + +- `
` + +- `
`
+
+
+下面来详细介绍一下排版标签。
+
+## 标题标签
+
+标题使用`

`至`

`标签进行定义。`

`定义最大的标题,`

`定义最小的标题。具有align属性,属性值可以是:left、center、right。 + +代码举例: + +```html + + + + + + Document + + +

H1:千古壹号,永不止步

+

H3:千古壹号,永不止步

+

H3:千古壹号,永不止步

+

H4:千古壹号,永不止步

+
H5:千古壹号,永不止步
+
H6:千古壹号,永不止步
+ + + +``` + +效果演示: + +![](http://img.smyhvae.com/20200402_1050.png) + +## HTML 注释 + +HTML 注释的格式如下: + +```html + +``` + +## 段落标签`

` + +段落,是英语“paragraph“缩写。 + +**作用**:可以把 HTML 文档分割为若干段落。在网页中如果要把文字有条理地显示出来,离不开段落标签。就如同我们平常写文章一样,整个网页也可以分为若干个段落。 + +代码举例: + +```html +

This is a paragraph

+

This is another paragraph

+``` + +属性: + +- `align="属性值"`:对齐方式。属性值包括left center right。 + +属性举例: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html166440-1dcd2ad6e6353559.png) + + +HTML标签是分等级的,HTML将所有的标签分为两种: + +- **文本级标签**:p、span、a、b、i、u、em。文本级标签里只能放**文字、图片、表单元素**。(a标签里不能放a和input) + +- **容器级标签**:div、h系列、li、dt、dd。容器级标签里可以放置任何东西。 + +从学习p的第一天开始,就要牢牢记住:**p标签是一个文本级标签,p里面只能放文字、图片、表单元素**。其他的一律不能放。 + +错误写法:(尝试把 h 放到 p 里) + +```html +

+ 我是一个小段落 +

我是一级标题

+

+``` + +网页效果如下: + +![](http://img.smyhvae.com/20170630_1102.png) + +上图显示,浏览器不允许你这么做,我们使用Chrome的F12审查元素发现,浏览器自己把p封闭掉了,不让你去包裹h1。 + +PS:Chrome浏览器是HTML5支持度最好的浏览器。提供了非常好的开发工具,非常适合我们开发人员使用。审查元素功能的快捷键是F12。 + + +## 水平线标签`
` + +> horizontal 单词的发音:[ˌhɒrɪˈzɒntl]。 + +水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分。在网页中常常看到一些水平线将段落与段落之间隔开,使得文档结构清晰,层次分明。 + +代码举例: + +```html + + + + + + Document + + +

自古情深留不住

+
+

总是套路得人心

+ + +``` + +运行效果: + +![](http://img.smyhvae.com/20200401_1930.png) + + +属性介绍: + - `align="属性值"`:设定线条置放位置。属性值可选择:left right center。 + - `size="2" `:设定线条粗细。以像素为单位,内定为2。 + - `width="500"`或`width="70%"`:设定线条长度。可以是绝对值(单位是像素)或相对值。如果设置为相对值的话,内定为100%。 + - `color="#0000FF"`:设置线条颜色。 + - `noshade`:不要阴影,即设定线条为平面显示。若没有这个属性则表明线条具阴影或立体。 + +属性效果演示: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_05.png) + +## 换行标签`
` + +如果希望某段文本强制换行显示,就需要使用换行标签。 + +```html +This
is a para
graph with line breaks +``` +效果如下: + +![](http://img.smyhvae.com/2015-10-01-cnblogs_html03.png) + +## `
`和``标签 + +div和span是非常重要的标签,div的语义是division“分割”; span的语义就是span“范围、跨度”。想必你应该听说过“div + css”布局。 + +### div和span的介绍 + +- **div标签**:可以把标签中的内容分割为独立的区块。必须单独占据一行。 + +- **span标签**:和div的作用一致,但不换行。 + +代码举例: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_08.png) + +div标签的属性: + +- `align="属性值"`:设置块儿的位置。属性值可选择:left、right、 center。 + +### div和span的区别 + +``和`
`唯一的区别在于:``是不换行的,而`
`是换行的。 + +如果单独在网页中插入这两个元素,不会对页面产生任何的影响。这两个元素是专门为定义CSS样式而生的。或者说,DIV+CSS来实现各种样式。 + +div在浏览器中,默认是不会增加任何的效果的,但是语义变了,div中的所有元素是一个小区域。 +div标签是一个**容器级**标签,里面什么都能放,甚至可以放div自己。 + +span也是表达“小区域、小跨度”的标签,但只是一个**文本级**的标签。 +就是说,span里面只能放置文字、图片、表单元素。 span里面不能放p、h、ul、dl、ol、div。 + +span举例: + +```html +

+ 简介简介简介简介简介简介简介简介 + + 详细信息 + 购买 + +

+ +``` + +div举例: + +```html +
+ + +
+
+
+
+
+ +``` + +我们亲切地称这种模式叫做“**div+css**”:**div标签负责布局、结构、分块,css负责样式**。 + +## 内容居中标签 `
` + +此时center代表是一个标签,而不是一个属性值了。只要是在这个标签里面的内容,都会居于浏览器的中间。 +效果演示: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_06.png) + +到了HTML5里面,center标签不建议使用,建议使用css布局来实现。 + +## 预定义(预格式化)标签`
`
+
+含义:将保留标签内部所有的空白字符(空格、换行符),原封不动地输出结果(告诉浏览器不要忽略空格和空行)。
+
+说明:真正排网页过程中,`
`标签几乎用不着。
+效果演示:
+
+![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_07.png)
+
+
+## 我的公众号
+
+想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。
+
+扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
+
+![](http://img.smyhvae.com/20200101.png)
diff --git "a/01-HTML/05-HTML\346\240\207\347\255\276\357\274\232\345\255\227\344\275\223\346\240\207\347\255\276\345\222\214\350\266\205\351\223\276\346\216\245.md" "b/01-HTML/05-HTML\346\240\207\347\255\276\357\274\232\345\255\227\344\275\223\346\240\207\347\255\276\345\222\214\350\266\205\351\223\276\346\216\245.md"
new file mode 100644
index 00000000..3a67fdec
--- /dev/null
+++ "b/01-HTML/05-HTML\346\240\207\347\255\276\357\274\232\345\255\227\344\275\223\346\240\207\347\255\276\345\222\214\350\266\205\351\223\276\346\216\245.md"
@@ -0,0 +1,254 @@
+
+
+## 本文主要内容
+
+字体标签: ``、 ``、 `` 、`` 、``
+
+超链接 ``
+
+## 字体标签
+
+### 特殊字符(转义字符)
+
+- ` `:空格	(non-breaking spacing,不断打空格)
+- `<`:小于号(less than)
+-  `>`:大于号(greater than)
+- `&`:符号`&`
+- `"`:双引号
+- `'`:单引号
+- `©`:版权`©`
+- `™`:商标`™`
+-  `绐`:文字`绐`。其实,`#32464`是汉字`绐`的unicode编码。
+
+要求背诵的特殊字符有:` `、`<`、`>`、`©`。
+
+比如说,你想把`

`作为一个文本在页面上显示,直接写`

`是肯定不行的,因为这代表的是一个段落标签,所以这里需要用到**转义字符**。应该这么写: +```html +这是一个HTML语言的<p>标签 +``` +正确的效果如下: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_11.png) + +错误的效果如下: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_12.png) + +其实我们只要记住前三个符号就行了,其他的在需要的时候查一下就行了。而且,EditPlus软件中是可以直接点击这些符号进行选择的: + +![Paste_Image.png]( +http://img.smyhvae.com/2015-10-01-cnblogs_html_13.png) + +来一张表格,方便需要的时候查询: + +| 特殊字符 | 描述 |字符的代码 | +|:-------------|:-------------|:-----| +||空格符|` `| +|<|小于号|`<`| +|> |大于号|`>`| +|&|和号|`&`| +|¥|人民币|`¥`| +|©|版权|`©`| +|®|注册商标|`®`| +|°|摄氏度|`°`| +|±|正负号|`±`| +|×|乘号|`×`| +|÷|除号|`÷`| +|²|平方2(上标2)|`²`| +|³|立方3(上标3)|`³`| + +### 下划线、中划线、斜体 + +- ``:下划线标记 + +- ``或``:中划线标记(删除线) + +- ``或``:斜体标记 + +效果: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_15.png) + +上面的这几个标签,常用于做一些小装饰、小图标。比如: + +![](http://img.smyhvae.com/20180118_2340.png) + +这张图中,我们通过查看京东网站的代码发现,箭头处的小图标都是用的标签``。 + + + +### 粗体标签``或``(已废弃) + +效果: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_14.png) + + + + + +### 字体标签``(已废弃) + +属性: + +- `color="红色"`或`color="#ff00cc"`或`color="new rgb(0,0,255)"`:设置字体颜色。 + 设置方式:单词 \ #ff00cc \ rgb(0,0,255) + +- `size`:设置字体大小。 取值范围只能是:1至7。取值时,如果取值大于7那就按照7来算,如果取值小于1那就按照1来算。如果想要更大的字体,那就只能通过css样式来解决。 + +- `face="微软雅黑"`:设置字体类型。 + +举例: + +```html +vae +``` + +效果: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_10.png) + + + + + + +### 上标`` 下标`` + +上小标这两个标签容易混淆,怎么记呢?这样记:`b`的意思是`bottom:底部` +举例: +```html +O2 53 +``` +效果: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_16.png) + +## 三、超链接 + +超链接有三种形式,下面分别讲讲。 + +### 1、外部链接:链接到外部文件 + +举例: +```html +点击进入另外一个文件 +``` + +a是英语`anchor`“锚”的意思,就好像这个页面往另一个页面扔出了一个锚。是一个文本级的标签。 + +href(hypertext reference):超文本地址。读作“喝瑞夫”,不要读作“喝夫”。 + +效果: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_17.png) + +当然,我们也可以直接点进链接,访问一个网址。举例如下: + +``` + 点我点我 +``` + +### 2、锚链接 + +**锚链接**:给超链接起一个名字,作用是**在本页面或者其他页面的的不同位置进行跳转**。比如说,在网页底部有一个向上箭头,点击箭头后回到顶部,这个就可以利用锚链接。 + +首先我们要创建一个**锚点**,也就是说,使用`name`属性或者`id`属性给那个特定的位置起个名字。效果如下: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_18.png) + +上图中解释: + +第11行代码表示,顶部这个锚的名字叫做name1。 +然后在底部设置超链接,点击时将回到顶部(此时,网页中的url的末尾也出现了`#name1`)。注意**上图中红框部分的`#`号不要忘记了**,表示跳到名为name1的特定位置,这是规定。如果少了`#`号,点击之后,就会跳到name1这个文件或者name1这个文件夹中去。 + +如果我们将上图中的第28行代码写成: + +```html +回到顶部 +``` + +那就表示,点击之后,跳转到`a.html`页面的`name1锚点`中去。 + +说明:name属性是HTML4.0以前使用的,id属性是HTML4.0后才开始使用。为了向前兼容,因此,name和id这两个属性都要写上,并且值是一样的。 + +### 3、邮件链接 + +代码举例: + +```html +点击进入我的邮箱 +``` + +效果:点击之后,会弹出outlook,作用不大。 + +### 超链接的属性 + +- `href`:目标URL +- `title`:悬停文本。 +- `name`:主要用于设置一个锚点的名称。 +- `target`:告诉浏览器用什么方式来打开目标页面。`target`属性有以下几个值: + - `_self`:在同一个网页中显示(默认值) + - `_blank`:**在新的窗口中打开**。 + - `_parent`:在父窗口中显示 + - `_top`:在顶级窗口中显示 + + +`title`属性举例: + +```html +结婚照 +``` + +效果如下: + +![](http://img.smyhvae.com/20170630_1415.png) + +`target`属性举例: + +```html +链接的内容 +``` + +blank就是“空白”的意思,就表示新建一个空白窗口。为啥有一个_ ,就是规定,无需解释。 +也就是说,如果不写`target=”_blank”`那么就是在相同的标签页打开,如果写了`target=”_blank”`,就是在新的空白标签页中打开。 + +#### 备注1:分清楚img和a标签的各自的属性 + +区别如下: + +```html + + +``` +#### 备注2:a是一个文本级的标签 + +比如一个段落中的所有文字都能够被点击,那么应该是p包裹a: + +```html +

+ 段落段落段落段落段落段落 +

+``` + +而不是a包裹p: + +```html + +

+ 段落段落段落段落段落段落 +

+
+``` + +a的语义要小于p,a就是可以当做文本来处理,所以p里面相当于放的就是纯文字。 + + + +## 我的公众号 + +想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。 + +扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外: + +![](http://img.smyhvae.com/20200101.png) diff --git "a/01-HTML/06-HTML\346\240\207\347\255\276\357\274\232\345\233\276\347\211\207\346\240\207\347\255\276.md" "b/01-HTML/06-HTML\346\240\207\347\255\276\357\274\232\345\233\276\347\211\207\346\240\207\347\255\276.md" new file mode 100644 index 00000000..e317487d --- /dev/null +++ "b/01-HTML/06-HTML\346\240\207\347\255\276\357\274\232\345\233\276\347\211\207\346\240\207\347\255\276.md" @@ -0,0 +1,208 @@ + + +## img标签介绍 + +### 介绍 + +img: 英文全称 image(图像),代表的是一张图片。 + +如果要想在网页中显示图像,就可以使用img 标签,它是一个单标签。语法如下: + +```html + +``` + +### 能插入的图片类型 + +- 能够插入的图片类型是:jpg(jpeg)、gif、png、bmp等。 + +- 不能往网页中插入的图片格式是:psd、ai等。 + +HTML页面不是直接插入图片,而是插入图片的引用地址,所以要先把图片上传到服务器上。 + +## img标签的`src`属性 +这里涉及到图片的一个属性: + +- `src`属性:指图片的路径。英文名称 source。 + +在写**图片的路径**时,有两种写法:相对路径、绝对路径 + +### 写法一:图片的相对路径 + +相对当前页面所在的路径。两个标记 `.` 和 `..` 分表代表当前目录和上一层目录。 + +举例1: + +```html + + + + + + +``` + +相对路径不会出现这种情况: + +```html +aaa/../bbb/1.jpg +``` + +`../`要么不写,要么就写在开头。 + +举例2: + +```html + +``` +上方代码的意思是说,当前html页面有一个并列的文件夹`images`,在文件夹`images`中存放了一张图片`1.jpg` +效果: + +![Paste_Image.png](http://img.smyhvae.com/20151001_19.jpg) + +相对路径的面试题。现有如下文件层级图: + +![](http://img.smyhvae.com/20170630_1133.png) + +问题:如果想在index.html中插入1.png,那么对应的img语句是? + +分析: + +现在document是最大的文件夹,里面有两个文件夹work和photo。work中又有一个文件夹叫做myweb。myweb文件夹里面有index.html。 所以index.html在myweb文件夹里面,上一级就是work文件夹,上两级就是document文件夹。通过document文件夹当做一个中转站,进入photo文件夹,看到了1.png。 + +答案: + +```html + +``` + +### 写法二:图片的绝对路径 + +绝对路径包括以下两种: + +(1)以盘符开始的绝对路径。举例: + +```html + +``` + +(2)网络路径。举例: + +```html + + +``` + +大家打开上面的img中的链接,可能有惊喜哦。 + +### 相对路径和绝对路径的总结 + +相对路径的好处:站点不管拷贝到哪里,文件和图片的相对路径关系都是不变的。相对路径使用有一个前提,就是网页文件和你的图片,必须在一个服务器上。 + +问题:我的网页在C盘,图片却在D盘,能不能插入呢? + +答案: 用相对路径不能,用绝对路径也不能。 + +注意:可以使用file://来插入,但是这种方法,没有任何意义!因为服务器上没有所谓c盘、d盘。 + +下面的方法是行的,但是没有任何工程上的意义,这是因为服务器没有盘符,linux系统没有盘符: + +```html + +``` + +**总结一下**: + +无论是在 a 标签还是 img 标签上,如果要用路径。只有两种路径能用,就是相对路径和绝对路径: + +- 相对路径从自己出发,找到别人。 + +- 绝对路径,就是`http://`或者`https://`开头的路径。 + +- 绝对不允许使用`file://`开头的文件,这个是完全错误的! + +## img标签的其他属性 + +### width、height 属性 + +- `width`:图像的宽度。 + +- `height`:图像的高度。 + +width和height,在 HTML5 中的单位是 CSS 像素,在 HTML 4 中既可以是像素,也可以是百分比。可以只指定 width 和 height 中的一个值,浏览器会根据原始图像进行缩放。 + +**重要提示**:如果要想保证图片等比例缩放,请只设置width和height中其中一个。 + +### Alt 属性 + +- `alt`:当图片不可用(无法显示)的时候,代替图片显示的内容。alt是英语 alternate “替代”的意思,代表替换资源。 + +`Alt`属性效果演示: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_21.png) + +如上图所示:当图片 src 不可用的时候,显示文字。这样做,至少能让用户知道,这个图片大概是什么内容。 + +### title 属性 + +- `title`:**提示性文本**。鼠标悬停时出现的文本。 + +title 属性不该被用作一幅图片在 alt 之外的补充说明信息。如果一幅图片需要小标题,使用 figure 或 figcaption 元素。 + +title 元素的值一般作为提示条(tooltip)呈现给用户,在光标于图片上停下后显示出来。尽管这确实能给用户提供更多的信息,您不该假定用户真的能看到:用户可能只有键盘或触摸屏。如果要把特别重要的信息提供给用户,可以选择上面提供的一种方法将其内联显示,而不是使用 title。 + +举例: + +```html + +``` + +效果: + +![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_20.png) + +### align 属性 + +- 图片的`align`属性:**图片和周围文字的相对位置**。属性取值可以是:bottom(默认)、center、top、left、right。 + +如果想实现图文混排的效果,请使用align属性,取值为left或right。 + +我们来分别看一下这`align`属性的这几个属性值的区别。 + +1、`align=""`,图片和文字低端对齐。即默认情况下的显示效果: + +![](http://img.smyhvae.com/2015-10-02-cnblogs_html_19.png) + +2、`align="center"`:图片和文字水平方向上居中对齐。显示效果: + +![](http://img.smyhvae.com/2015-10-02-cnblogs_html_21.png) + +3、`align="top"`:图片与文字顶端对齐。显示效果: + +![](http://img.smyhvae.com/2015-10-02-cnblogs_html_22.png) + +4、`align="left"`:图片在文字的左边。显示效果: + +![](http://img.smyhvae.com/2015-10-02-cnblogs_html_23.png) + +5、`align="right"`:图片在文字的右边。显示效果: + +![](http://img.smyhvae.com/2015-10-02-cnblogs_html_24.png) + + +### 其他已废弃的属性 + +- `Align`(已废弃):指图片的水平对齐方式,属性值可以是:top、middle、bottom、left、center、right。该属性已废弃,替换为 `vertical-align`这个CSS属性。 +- `border`(已废弃):给图片加边框,单位是像素,边框的颜色默认黑色。该属性已废弃,替换为 `border`这个CSS属性。 +- `Hspace`(已废弃):指图片左右的边距。 +- `Vspace`(已废弃):指图片上下的边距。 + +最后,送上妹子的近照一张。楼主已经仁至义尽了:http://img.smyhvae.com/2015-10-01-cnblogs_html_20150219214912_11994.jpg + +## 我的公众号 + +想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。 + +扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外: + +![](http://img.smyhvae.com/20200101.png) \ No newline at end of file diff --git "a/01-html/02-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" "b/01-HTML/07-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" similarity index 86% rename from "01-html/02-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" rename to "01-HTML/07-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" index b642298c..988b5f7c 100644 --- "a/01-html/02-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" +++ "b/01-HTML/07-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" @@ -1,12 +1,8 @@ -> 本文最初于2015-10-02发表于[博客园](http://www.cnblogs.com/smyhvae/p/4852863.html),并在[GitHub](https://github.com/qianguyihao/Web)上持续更新**前端的系列文章**。欢迎在GitHub上关注我,一起入门和进阶前端。 - -> 以下是正文。 - ## 本文主要内容 - - 列表标签:`
    `、`
      `、`
      ` + - 列表标签:`
        `、`
          `、`
          ` - 表格标签:`` - 框架标签及内嵌框架`