开发工具
最常用的开发工具是 VS Code,只需新建文件并将其保存为以 .html 结尾即可。
VS Code 常用插件
VS Code 之所以被称为宇宙第一神器,其所拥有的丰富插件功不可没,这些插件功能强大,安装起来也很简单,给我们的开发带来了极大便捷。
以下是一些常用插件:
- Chinese (Simplified) Language Pack – 汉化
- Auto Rename Tag – 修改开始标签,结束标签会跟着自动变化
- One Dark Pro – 颜色主题
- 格式化代码(vscode 软件自带) – 格式化代码的插件非常多,比如 Prettier 等,但其实 vscode 自带的也很不错;管理 -> 设置 -> 文本编辑器 -> 正在格式化 -> 勾选
Format On Paste
和Format On Save
- open in browser – 浏览器预览页面(好用,但是改完代码浏览器需重新刷新才能预览效果)
- Live Server – 实时预览(推荐,改完代码浏览器自动刷新预览效果)
- vscode-icons – 设置文件图标主题,可以很清楚的看到文件类型对应的图标
- Easy LESS – 编译 less 文件(less 文件不能直接引入到 html 文件中,通过这个插件可以自动帮我们生成 css 文件)
- 会了吧 – 学习单词插件(可以帮助翻译单词,可以使用)
VS Code 常用快捷键
- Shift+Alt+下箭头(上箭头) – 快速复制粘贴一行
- Ctrl+D – 选定多个相同的单词(先双击选定一个单词,然后按下快捷键即可从上往下依次选定相同的单词)
- Ctrl+Alt+下箭头(上箭头) – 添加多个光标
- Ctrl+H – 全局替换,可以将某单词全部替换为另一个单词
- Ctrl+G – 快速定位到某一行(当页面较长,上下滚动页面不方便时,就可利用该快捷键快速定位到指定行)
- Shift+Alt+拖动鼠标 – 选择某个区块进行操作
- Ctrl+‘+’/Ctrl+‘-’ – 放大/缩小编辑器界面
- 自定义快捷键 – 管理 -> 键盘快捷方式 -> 输入要更改的快捷键,然后找到它进行编辑
VS Code 工具生成骨架标签新增代码
<!DOCTYPE>
标签:文档类型声明,作用就是告诉浏览器使用哪种 HTML 版本来显示网页
<!DOCTYPE html>
就是告诉浏览器使用 HTML5 来显示网页
<!DOCTYPE>
声明需位于文档最前面的位置,处于<html>
标签之前
<!DOCTYPE>
不是一个 HTML 标签,它就是文档类型声明标签lang
语言:用来定义当前文档显示的语言,<html lang="en">
“en” 定义语言为英语,“zh-CN” 定义语言为中文,简单来说就是英文网页和中文网页
其实对于文档显示来说,英文网页可以显示中文,中文网页也能显示英文
这个属性对浏览器和搜索引擎还是有作用的,比如提示作用(是否需要翻译成其他语言)charset
字符集:字符集是多个字符的集合,便于计算机识别和存储各种文字
在<head>
标签内,可以通过<meta>
标签的charset
属性来规定 HTML 文档应该使用哪种字符编码,<meta charset="UTF-8">
charset
常用的值有 GB2312、BIG5、GBK、UTF-8 等,其中 UTF-8 也被称为万国码,基本包含了全世界所有国家需要用到的字符
这句语法是必须要写的,否则可能引起乱码的情况。一般情况下,统一使用 UTF-8 编码,尽量写成标准的 “UTF-8”,不要写成 “utf8” 或 “UTF8”
HTML 语法规范
语法规范
基本语法规范:
- 所有的标签都要用
<>
括起来 - 标签一般成对出现,如
<html></html>
,我们称为双标签,其中<html>
是开始标签,</html>
是结束标签 - 有的标签不用成对出现,只需单个标签就行,如
<br />
,我们称为单标签,但这样的标签很少,屈指可数
标签关系
双标签关系可以分为两类:包含关系和并列关系。
包含关系如下所示:
<head>
<title></title>
</head>
并列关系如下所示:
<head></head>
<body></body>
HTML 基本结构标签
每个网页都会有一个基本的结构标签(也称为骨架标签),页面内容也是在这些基本标签上书写。HTML 页面也称为 HTML 文档。
<html>
<head>
<title>我的第一个页面</title>
</head>
<body>
HTML 是世界上最好的标记语言,没有之一!
</body>
</html>
标签名 | 定义 | 说明 |
---|---|---|
<html></html> | HTML 标签 | 页面中最大的标签,我们称为根标签 |
<head></head> | 文档的头部 | 在 head 标签中,我们必须要设置 title 标签 |
<title></title> | 文档的标题 | 让页面拥有一个属于自己的网页标题 |
<body></body> | 文档的主体 | 元素包含文档的所有内容,页面内容基本都是放到 body 里面的 |
HTML 文档的后缀名必须是 .html
或 .htm
,浏览器的作用是读取 HTML 文档,并以网页的形式显示它们。
HTML 常用标签
学习标签是有技巧的,重点是记住每个标签的语义。根据标签的语义,在合适的地方给一个最为合理的标签,可以让页面结构更加清晰。
标题标签
为了使网页更具有语义化,我们经常会在页面中用到标题标签。HTML 提供了 6 个等级的网页标题,即 <h1> - <h6>
。
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
标题标签内的文字会更粗更大,一个标题独占一行。
段落标签
在网页中,要把文字有条理地显示出来,就需要将这些文字分段显示。在 HTML 标签中,使用 <p>
标签来定义段落,它可以将整个网页分成若干个段落。
<p>这是一个段落</p>
在网页中,无论使用多少个空格都只会显示一个空格,无论使用多少个回车进行换行,同样也只会显示为一个空格。因此,网页中的段落显示并不依靠回车换行,而是依赖 <p>
标签。
文本在一个段落中会根据浏览器窗口的大小自动换行,段落与段落之间会留有一定空隙。
换行标签
在 HTML 中,一个段落中的文字会从左到右依次排列,直到浏览器窗口的右端,然后才自动换行。如果希望强制换行显示,就需要使用到换行标签 <br />
,它是一个单标签。
<br /> --- 作用是强制换行
<br />
标签只是简单地开始新的一行,行与行之间的空隙不会发生变化。
文本格式化标签
在网页中,有时需要为文字设置粗体、斜体、删除线、下划线等效果,这时就需要用到 HTML 中的文本格式化标签,使文字以特殊的方式显示。
语义 | 标签 | 说明 |
---|---|---|
粗体 | <strong></strong> 或 <b></b> | 更推荐使用 <strong> 标签,语义更强烈 |
斜体 | <em></em> 或 <i></i> | 更推荐使用 <em> 标签,语义更强烈 |
删除线 | <del></del> 或 <s></s> | 更推荐使用 <del> 标签,语义更强烈 |
下划线 | <ins></ins> 或 <u></u> | 更推荐使用 <ins> 标签,语义更强烈 |
<div>
和 <span>
标签
<div>
和 <span>
标签是没有语义的,它们就是一个用来装内容的盒子。
<div>这是头部</div>
<span>今日价格</span>
<div>
标签用于页面布局,其特点是一行只能放一个 <div>
,即独占一行,类似一个大盒子。
<span>
标签用于页面布局,其特点是一行可以放多个 <span>
,类似一个小盒子。
图像标签
在 HTML 标签中,<img>
标签用于定义 HTML 页面中的图像,它是一个单标签。
<img src="image url">
src 是图像标签的必需属性,它用于指定图像文件的路径和文件名。
图像标签的属性 | 属性值 | 说明 |
---|---|---|
src | 图片路径 | 必需属性 |
alt | 文本 | 替换文本。图像显示不出来时展示的文字 |
title | 文本 | 提示文本。鼠标放到图像上时显示的文字 |
width | 像素 | 设置图像的宽度 |
height | 像素 | 设置图像的高度 |
border | 像素 | 设置图像的边框粗细 |
<img src="img.png" alt="图片加载失败" title="这是一个帅哥" width="500" border="10">
当图片显示不出来时,会显示图片加载失败;
在图片能显示的情况下,当鼠标放到图片上时,会显示这是一个帅哥;
图片的宽度设置成了 500 像素,高度会等比例缩放,宽度和高度一般设置一个即可;
图片的边框粗细设置成了 10 个像素。
图像标签的属性注意点:
- 图像标签可以有多个属性,但均须写在标签名 img 的后面
- 属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开
- 属性采取键值对的格式,即 key=“value” 的格式
路径
页面中的图片会非常多,通常我们会新建一个文件夹来存放这些图像文件,这时再查找图像就需要采用“路径”的方式来指定图像文件的位置。
路径可分为绝对路径和相对路径,图像标签中最常使用相对路径。
相对路径就是从这个图像标签所在的 html 文件出发,去寻找目标图像文件。
绝对路径指的是目录下的绝对位置,通常从盘符开始。
假如有一个名为 img.jpg 的图像文件,与 .html 文件放在同一个目录下,那么在该 html 文档中引用这个图片时,就可以使用相对路径 <img src="img.jpg">
。
假如有一个名为 images 的文件夹,该文件夹内存放了 img.jpg 图像文件,images 文件夹与 .html 文件放在同一个目录下,那么在该 html 文档中引用这个图片时,就可以使用相对路径 <img src="images/img.jpg">
。
假如 img.jpg 图像文件放在了 .html 文件所在目录的父目录下,那么在该 html 文档中引用这个图片时,就可以使用相对路径 <img src="../img.jpg">
。
超链接标签
在 HTML 标签中,<a>
标签用于定义超链接,作用是从一个页面链接到另一个页面。
<a href="跳转目标" target="目标窗口的弹出方式"> 文本或图像 </a>
href:这是必需属性,用于指定链接目标的 URL 地址,当为标签应用该属性时,它就具有了超链接的功能
target:用于指定链接页面的打开方式,其中 _self 为默认值,也就是将本页面直接跳转为目标页面,_blank 为在新窗口中打开目标页面
链接分类:
- 外部链接,可以跳转到某个网站首页,如
<a href="https://www.baidu.com">百度</a>
- 内部链接,可以跳转到另一个 html 页面,如
<a href="第一个页面.html" target="_blank">第一个页面</a>
- 空链接,暂时没想好链接到哪个页面,可以用 # 来表示空链接,如
<a href="#">公司简介</a>
- 下载链接,如果 href 指向的地址是一个可下载文件或压缩包,则会下载这个文件,如
<a href="img.zip">下载文件</a>
- 网页元素链接,在网页中的各种元素,如文本、图像、表格、音频、视频等都可以添加超链接,如
<a href="https://www.baidu.com"><img src="img.jpg"></a>
,那么点击图像即可跳转到百度页面 - 锚点链接,点击链接即可快速定位到页面中的某个位置
- 在链接文本的 href 属性中,设置属性值为"#名字"的形式,如
<a href="#two">第2集</a>
- 找到目标位置标签,在里面添加一个属性 id=“名字” ,如
<h3 id="two">第2集介绍</h3>
- 在链接文本的 href 属性中,设置属性值为"#名字"的形式,如
HTML 中的注释和特殊字符
注释
如果需要在 HTML 文档中添加一些便于阅读和理解,但又不需要显示在页面中的注释文字,就需要使用注释标签。
HTML 中的注释可以写成 <!-- 注释语句 -->
,在 VS Code 中可以使用快捷键 Ctrl+/ 进行注释。
简单来说,注释语句是给开发人员看的,并不会显示到网页中。
特殊字符
在 HTML 页面中,一些特殊的符号很难或者不方便直接使用,此时我们就可以使用下面的字符来替代。
特殊字符 | 描述 | 字符的代码 |
---|---|---|
空格符 | | |
< | 大于号 | < |
> | 小于号 | > |
& | 和号 | & |
¥ | 人民币 | ¥ |
© | 版权 | © |
® | 注册商标 | ® |
° | 度 | ° |
± | 正负号 | ± |
× | 乘号 | × |
÷ | 除号 | ÷ |
² | 平方 | ² |
³ | 立方 | ³ |
重点记住空格符、大于号、小于号,其他使用较少。
HTML 中的表格标签
表格在实际开发中是非常常用的标签。
表格的作用
表格主要用于显示、展示数据,因为它可以让数据显示的非常规整,可读性非常好,特别是后台展示数据的时候,能够熟练运用表格就显得很重要。
表格不是用来布局页面的,而是用来展示数据的。
表格的语法
表格的基本语法:
<table>
<tr>
<td>单元格内的文字</td>
...
</tr>
...
</table>
<table></table> 标签用于定义表格;
<tr></tr> 标签用于定义表格中的行,必须嵌套在 <table></table> 标签中;
<td></td> 标签用于定义表格中的单元格,必须嵌套在 <tr></tr> 标签中
表头单元格标签
一般表头单元格位于表格的第一行或第一列,表头单元格里面的文本内容会自动加粗居中显示。
在 HTML 中,使用 <th>
标签来表示表格的表头部分。
表格标签
表格标签有关于表格的一些属性,但这些标签属性在实际开发中并不常用,因为会通过 CSS 来设置。
表格标签具有以下属性:
属性名 | 属性值 | 描述 |
---|---|---|
align | left、center、right | 规定表格相对周围元素的对齐方式 |
border | 1 或 “” | 规定表格单元是否拥有边框,默认为 “”,表示没有边框 |
cellpadding | 像素值 | 规定单元边沿与其内容之间的空白,默认 1 像素 |
cellspacing | 像素值 | 规定单元格之间的空白,默认 2 像素 |
width | 像素值或百分比 | 规定表格的宽度 |
<table align="center" border="1" cellpadding="20" cellspacing="0" width="500">
...
</table>
<table align="center" border="1" cellpadding="10" cellspacing="2" width="700">
<tr>
<th>排名</th>
<th>关键词</th>
<th>趋势</th>
<th>今日搜索</th>
<th>最近七日</th>
<th>相关链接</th>
</tr>
<tr>
<td>1</td>
<td>鬼吹灯</td>
<td>down</td>
<td>345</td>
<td>123</td>
<td><a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a></td>
</tr>
<tr>
<td>2</td>
<td>盗墓笔记</td>
<td>down</td>
<td>124</td>
<td>6754</td>
<td><a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a></td>
</tr>
<tr>
<td>3</td>
<td>东游记</td>
<td>up</td>
<td>23</td>
<td>7546</td>
<td><a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a></td>
</tr>
</table>
表格结构标签
因为表格可能会很长,为了更好的表示表格的语义,可以将表格分割成表格头部和表格主体两大部分,在实际开发中常常这么做。
在表格标签中,用 <thead>
标签表示表格的头部区域,内部必须包含 <tr>
标签,一般用于表格的第一行;用 <tbody>
标签表示表格的主体区域。
<table>
<thead>
<tr>
<th>...</th>
...
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
...
</tr>
...
</tbody>
</table>
合并单元格
合并单元格有两种方式:
- 跨行合并,rowspan=“合并单元格的个数”,在最上侧单元格中写合并代码
- 跨列合并,colspan=“合并单元格的个数”,在最左侧单元格中写合并代码
合并单元格步骤:
- 先确定是跨行合并还是跨列合并
- 找到最上侧或最左侧的单元格,写合并代码
- 删除多余的单元格
<table align="center" border="1" cellpadding="20" cellspacing="0" width="700"> <tr>
<td></td>
<td colspan="2"></td>
</tr>
<tr>
<td rowspan="2"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
HTML 中的列表标签
如果说表格是用来展示数据的,那么列表就是用来布局页面的。列表最大的特点就是整齐、整洁、有序,它用于布局会更加自由和方便。
根据使用情景不同,列表可以分为三大类:无序列表、有序列表和自定义列表。
无序列表
在 HTML 页面中,使用 <ul>
标签来表示无序列表,使用 <li>
标签来表示列表项。
<ul>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
...
</ul>
无序列表有几个需要注意的点:
- 无序列表的各个列表项之间没有顺序级别之分,是并列的
<ul></ul>
中只能嵌套<li></li>
,直接在<ul></ul>
标签中输入其他标签或文字是不被允许的<li>
与</li>
之间相当于一个容器,可以容纳所有元素,即可以输入其他标签、文字或其他东西- 无序列表有自己的样式属性,但在实际使用时,我们会使用 CSS 来设置
有序列表
有序列表即为有排列顺序的列表,其各个列表项会按照一定的顺序排列定义,列表排序以数字显示。
在 HTML 页面中,使用 <ol>
标签来表示有序列表,使用 <li>
标签来表示列表项。
<ol>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
...
</ol>
有序列表有几个需要注意的点:
<ol></ol>
中只能嵌套<li></li>
,直接在<ol></ol>
标签中输入其他标签或文字是不被允许的<li>
与</li>
之间相当于一个容器,可以容纳所有元素,即可以输入其他标签、文字或其他东西- 有序列表有自己的样式属性,但在实际使用时,我们会使用 CSS 来设置
自定义列表
自定义列表常用于对术语或名词进行解释和描述,定义列表的列表项前没有任何项目符号。
在 HTML 页面中,使用 <dl>
标签来表示描述列表(或定义列表),使用 <dt>
标签来表示项目/名字,使用 <dd>
标签来表示每一个具体的项目/名字。
<dl>
<dt>名词1</dt>
<dd>名词1解释1</dd>
<dd>名词1解释2</dd>
<dd>名词1解释3</dd>
...
</dl>
自定义列表有几个需要注意的点:
<dl></dl>
里面只能包含<dt>
和<dd>
<dt>
和<dd>
个数没有限制,经常是一个<dt>
对应多个<dd>
HTML 中的表单标签
在网页中,我们需要跟用户进行交互,收集用户信息,此时就需要用到表单。
在 HTML 中,一个完整的表单通常由表单域、表单控件(也称为表单元素)和提示信息三个部分组成。
表单域
表单域就是一个包含表单元素的区域。在 HTML 中,使用 <form>
标签来定义表单域,以实现用户信息的收集和传递。<form>
会把它范围内的表单元素信息提交给服务器。
<form action="URL" method="提交方式" name="表单域名称">
各种表单元素控件
</form>
属性 | 属性值 | 作用 |
---|---|---|
action | URL 地址 | 用于指定接收并处理表单数据的服务器的 URL 地址 |
method | get/post | 用于设置表单数据的提交方式,取值为 get 或 post |
name | 名称 | 用于指定表单的名称,以区分同一页面中的多个不同表单域 |
表单控件(表单元素)
在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或者选择内容的控件。
常用的表单元素有以下几种:
-
input 输入表单元素
-
使用
<input>
标签来收集用户信息,该标签是一个单标签,<input type="属性值">
-
在
<input>
标签中,包含一个必需的 type 属性,可以根据不同的 type 属性值,使输入字段具有多种形式(可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等),即 type 属性通过设置不同的属性值来指定不同的控件类型属性值 描述 button 定义可点击按钮(多数情况下,用于通过 JavaScript 启动脚本) checkbox 定义复选框 file 定义输入字段和 “浏览” 按钮,供文件上传 hidden 定义隐藏的输入字段 image 定义图像形式的提交按钮 password 定义密码字段,该字段中的字符被掩码 radio 定义单选按钮 reset 定义重置按钮,重置按钮会清楚表单中的所有数据 submit 定义提交按钮,提交按钮会把表单数据发送到服务器 text 定义单行的输入字段,用户可在其中输入文本,默认宽度为 20 个字符 -
<input>
标签除了 type 属性外,还有其他一些属性,见下表属性 属性值 描述 name 由用户自定义 定义 input 元素的名称 value 由用户自定义 规定 input 元素的值 checked checked 规定此 input 元素首次加载时应对被选中 maxlength 正整数 规定输入字段中的字符的最大长度 单选按钮和复选框按钮中的 name 属性需要一致,几个单选按钮只有 name 属性一致时才能允许仅让一个单选按钮被选中,如
性别:男 <input type="radio" name="sex"> 女 <input type="radio" name="sex"> 爱好:听歌 <input type="checkbox" name="hobby"> 打球 <input type="checkbox" name="hobby">
单选按钮和复选框按钮可以设置 checked 属性,当页面打开时就可以默认选中这个按钮,几个单选按钮只需给其中一个设置 checked 属性即可。
name 和 value 是每个表单元素都有的属性值,主要给后台人员使用。
checked 属性主要针对于单选按钮和复选框按钮。
<form> 用户名:<input type="text" value="请输入用户名" maxlength="20"> <br> 密码:<input type="password"> <br> 是否成年:<input type="checkbox" checked="checked"> <br> 性别:<label for="male">男</label> <input type="radio" name="sex" id="male"> <label for="female">女</label> <input type="radio" name="sex" id="female"> <br> 爱好:听歌 <input type="checkbox" name="hobby"> 打球 <input type="checkbox" name="hobby"> <br> 手机:<input type="text" value="请输入手机号码"> <br> <input type="button" value="获取短信验证码"> <!-- 结合JS使用 --> <br> 上传照片:<input type="file" value="选择文件"> <br> <input type="submit" value="免费注册"> <!-- 点击了提交按钮,就可以把表单域中的表单元素的值提交到后台服务器 --> <input type="reset" value="重新设置"> </form>
-
<label>
标签用于绑定一个表单元素,当点击<label>
标签内的内容时,浏览器就会自动将焦点(光标)转到对应的表单元素上,可以增加用户体验<label for="sex">男</label> <input type="radio" name="sex" id="sex">
<label>
标签的 for 属性值应当与相关元素的 id 属性值相同。
-
-
select 下拉表单元素
在 HTML 页面中,如果有多个选项让用户选择,可以使用
<select>
标签来定义下拉表单元素。<select> <option>选项1</option> <option>选项2</option> <option>选项3</option> ... </select>
<select>
标签中至少需包含一对<option></option>
。在
<option>
中定义 selected=“selected”,则可以将该选项设置为默认选中项。 -
textarea 文本域表单元素
当用户输入内容较多的情况下,就不太方便使用文本框表单了,此时可以使用
<textarea>
标签。在表单元素中,<textarea>
标签是用于定义多行文本输入的控件。留言:<textarea rows="3" cols="50">在此输入您的留言</textarea>
rows=“显示的行数”,rows=“每行中可显示的字符数”,在实际开发中这两个属性不会在
<textarea>
标签中使用,都是用 CSS 来调整。