前端之路-HTML
整理所学过的所有HTML相关的内容。
资料汇总
【书籍】【微信读书】《从 0 到 1:HTML+CSS 快速上手》莫振杰 第一部分 HTML
【书籍】【纸书】《Head First HTML 与 CSS》HTML 部分
【极客时间】《重学前端》Winter 模块 2-HTML+CSS 中 HTML 相关部分
【书籍】【微信读书】《HTML 并不简单:Web 前端开发精进秘籍》张鑫旭
【网站】
各资源详细学习笔记
《从 0 到 1:HTML+CSS 快速上手》莫振杰 第一部分 HTML
HTML 标签的分类方式
1. 根据写法分
- 一般标签,也就是开和闭成套,如
<div></div>
。 - 自闭和标签,也就是写一个即可,如
<hr>、<br>
。
2. 根据表现形式分
- 块元素:独占一行。如:div、h1-h6、p、hr、ul/ol/li。
- 行内元素:独占一块。如:span、strong、em、a
3. 根据用途分
- 文档类型标签
- 基本标签
- 文本展示类标签
- 列表标签
- 表格标签
- 图片标签
- 超链接标签
- 表单标签
- 框架标签。
标题用途细分
下面根据标签的用途,来对标签进行一个详细的总结。
1. 文档类型标签
HTML 的文档类型分几个版本,目前都是 HTML5,所以在 html 文件第一行写入<!DOCTYPE html>
即可,表明这是一个 HTML5 的文档。
2. 基本标签
包含 3 个,分别是 html、head、body。
html 代表一颗完整的树
head 可以理解为看不见的树根
head 里面放一些我们看不见的元信息,比如:页面标题、脚本引用、样式引用等等。body 则放置一切用于显示的标签。
body 则可以理解为地平面以上我们能看到的树的所有外在。
对于基本标签我们重点关注 head 即可,head 里面可以放的元素有 6 个:title、meta、link、script、style、base,重点也只关注 meta 和 link。
meta:用于定于页面的特殊信息,也是用来告诉爬虫一些信息的地方。主要有 2 个重要的属性:name、http-equiv,且需要搭配 content 一起使用。
对于 name 属性,一般有 4 个值:keywords、description、author、copyright。示例如下:
html<meta name="keywords" content="前端开发" /> <meta name="description" content="一个富有活力的网站" /> <meta name="author" content="coder" /> <meta name="copyright" content="禁止转载" />
对于 http-equiv 属性,有两个重要的作用,网页的编码和网页自动刷新跳转。示例如下:
html<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />可以简写为:<meta charset="utf-8" />(要放到title标签前) <meta http-equiv="refresh" content="6;url=https://www.baidu.com" />
link:可用于网页 icon、引入外部的样式表。
3. 文本展示类
主要有:标题标签(h1-h6)、段落标签(p)、换行标签(br)、文本标签(重要)、水平线标签(hr)、特殊符号。
文本标签涉及的标签较多,常用的有 8 种:
- strong/b(粗体标签)推荐 strong
- i/em/cite(斜体标签)推荐 em
- sup(上标标签)
- sub(下标标签)
- s(中划线标签)一般通过 css
- u(下划线标签)一般通过 css
- big(大字号)一般通过 css
- small(小字号) 一般通过 css
特殊符号
由于 html 的解析机制会导致一些正常的内容无法显示,比如空格,大于号和小于号等,所以需要用特殊的内容来编写,这样浏览器才能解析成我们想要展示的内容。 参考:https://developer.mozilla.org/zh-CN/docs/Glossary/Entity
4. 列表标签
列表有 3 种:有序列表、无序列表和定义列表,分别对应的标签是:
有序列表对应:ol(可指定 type 属性更改前面的数字样式)、li。
无序列表对应:ul(可指定 type 属性更改前面的数字样式)、li。
定义列表:dl(容器 definition list),内容由名词和描述组成:dt(definition term 定义名词)、dd(definition description 定义描述)。
html<dl> <dt>HTML</dt> <dd>标记语言</dd> </dl>
5. 表格标签
主要包含 3 点:表格涉及的标签、合并行、合并列。
html
<table>
<caption>表格标题</captyion>
<thead>
<tr>
<th>表头单元格:列1</th>
<th>表头单元格:列2</th>
<th>表头单元格:列3</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">表行单元格</td>
<td colspan="2">表行单元格</td>
</tr>
<tr>
<td>表行单元格</td>
<td>表行单元格</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>表行单元格:第1行-第1列 表脚</td>
<td>表行单元格:第1行-第2列 表脚</td>
<td>表行单元格:第1行-第2列 表脚</td>
</tr>
</tfoot>
</table>
6. 图片标签
用的是 img 标签,其中 src 属性和 alt 属性是必要的。
html
<img src="" alt="" title="" />
图片的格式主要是:位图(又叫像素图 png/jpg/gif)和矢量图(svg)。
- 位图:高清用 jpg,一般图片 png,动图用 gif。
- 矢量图:用数学描述的方式来表示图片的内容。
7. 超链接标签
超链接可以链接到的地方有 2 个:网页内(#id)和网页外(url)。另外点击后的打开方式通过 target 属性设置,支持 _self、_blank、_parent、_top
。
html
<a href="#">点我跳转</a>
8. 表单标签
用于提交信息到服务端,表单相关标签还可以继续根据标签名和外观进行分类
根据标签名分:form、input、textarea、select 和 option。 表单内容包裹在 form 标签内,它有 5 个属性:name、method、action、target、enctype(用于表单数据的编码方式,一般不设置,除非用到文件上传)。
input 最为复杂,包含很多类型:text、password、radio、checkbox、button/submit/reset、file。
根据外观分(8 种):单行文本框、多行文本框、密码文本框、单选框、多选框、按钮、文件上传、下拉列表。
整体示例
html
<form name="myForm" method="get" action="https://www.baidu.com" target="_blank">
<label
>姓名:<input
type="text"
value=""
placeholder="包含3个属性:value、size、maxlength"
size="100" /></label
><br />
<label>密码:<input type="password" /></label><br />
<label
>性别: <input type="radio" name="gender" value="男" checked />男
<input type="radio" name="gender" value="女" />女 </label
><br />
<label
>我喜欢的水果: <input type="checkbox" name="fruits" value="苹果" />苹果
<input type="checkbox" name="fruits" value="香蕉" />香蕉
<input type="checkbox" name="fruits" value="芒果" />芒果 </label
><br />
<label
>按钮组:
<input type="button" value="普通按钮" onclick="alert('我是普通按钮')" />
<input type="submit" value="提交按钮" />
<input type="reset" value="重置按钮" /> </label
><br />
<label>文件上传:<input type="file" /></label><br />
<label
>简介(多行文本框):<br />
<textarea rows="5" cols="20" placeholder="请输入简介"></textarea>
</label>
<label
>下拉列表:
<select name="selects" multiple size="3">
<option value="HTML" selected>HTML</option>
<option value="CSS">CSS</option>
<option value="JS">JS</option>
</select>
</label>
</form>
9. 框架标签
用来实现内嵌框架,可以内嵌别的网页。
html
<iframe src="" width="" height=""></iframe>
《Head First HTML 与 CSS》前 6 章 HTML 部分
2013 年出版,对于 2024 的今天来说已经很久远了,很早从多抓鱼买的,如今多抓鱼已经不收了,可见已经过时了。但书中的一些知识点我这里总结一下,没有必要再去读了。
HTML 相关的知识点(至于每个标签是做什么用的,可以在 MDN 中定向搜索):
- HTML 发展简史:html1.0-2.0(1989、1991)、html3(1995)、html4(1998)、html4.01(1999)、xhtml1.0(2001)、html5(2009、2012)
- 都有哪些常用的 html 标签:html、head、body、div/span、a、img、q/blockquote、br、Void 标签概念(空元素,也就是自闭合标签)、ul/ol/li、code、pre、em/strong、table/caption/thead/tbody/tfoot/tr/th/td、form。
- html 元素的属性做什么用的:给元素附加信息,比便给 CSS 或者 JS 使用。
- 新的 html5 标签:article、nav、header、footer、aside、section、video、time、progress、canvas、figure。
- 字符实体是什么:防止被浏览器误当做 html 内容解析而定义的一套映射,使用这套映射里对应的编码,可以渲染出不同的内容。详见:https://www.w3schools.com/html/html_entities.asp
- a 标签的 4 种打开方式是什么:_blank、_self、_parent、_top。
- img 表现用到的常见图片格式:jpeg、png、gif。
- jpeg:最适合保存照片和其他复杂图像。可以按不同质量压缩,可以很好地权衡图像质量和文件大小。
- gif:最适合用来制作动图,无损格式,往往比 jpeg 大,允许建立透明背景,只支持 256 种颜色。
- png:最适合保存 logo 和其他包含单色,线条或文本的简单图形。无损格式,往往比 jpeg 大允许建立透明背景,比 gif 有更好的透明度控制,png 有 3 种不同的大小选择:png-24(支持数百万种颜色)、png-16(支持数千种颜色),png-8(支持 256 种颜色)。
- video 视频的种类:
- MP4 容器,包含 H.264 视频和 AAC 音频。
- WebM 容器,包含 VP8 视频和 Vorbis 音频
- Ogg 容器,包含 Theora 视频和 Vorbis 音频。
- 验证 HTML 文档标签合法程度:https://validator.w3.org/
- 验证 CSS 样式合法程度:http://jigsaw.w3.org/css-validator
《重学前端-极客时间》Winter 模块 2-HTML+CSS-16 讲
HTML 语义:div 和 span 不是够用了吗?
正确的使用语义标签的两个好处:对开发者友好、机器宜读且有利于 SEO。
「自然语言表达能力补充」:一些文章常常会拿 em 和 strong 做对比,实际上,我们只要理解了 em 的真正意思,表示重音,它和 strong 可谓天差地别,并没有任何混淆的可能。
html<div>今天我吃了<em>一个</em>苹果</div> <div>今天我吃了一个<em>苹果</em></div>
「文章标题摘要」:hgroup、section 等。从 HTML 5 开始,我们有了 section 标签,这个标签可不仅仅是一个“有语义的 div”,它会改变 h1-h6 的语义。section 的嵌套会使得其中的 h1-h6 下降一级,因此,在 HTML5 以后,我们只需要 section 和 h1 就足以形成文档的树形结构。
「适合机器阅读的整体结构」:header、footer、aside、nav、section、address 等。