Skip to content

HTML 标签

第一章:HTML 简介

一、基础语法

1. 内容类型:HTML5 的文件扩展名为 html 或 htm,内容类型为 text/html。

2. HTML5 不区分英文字母的大小写,但推荐小写。

3. 代码注释:① html 文档中 <!--内容-->

                      ② css 文档中 /**/

4. HTML5 标签及属性

1) 标签分为:单标签 (空标签)、双标签。

2) 标签的属性

<标签名 属性名="属性值" ......>< /标签名>

<标签名 属性名="属性值" ...... />

属性值可以是双引号,也可以是单引号,更可以不写引号。

具有布尔值的属性。
false:①不写属性 ②属性值设为 false
true:①只写属性 ②不填属性值 ③属性值为属性名 ④属性值设为 true

属性分为全局属性与特定属性。全局属性是所有 HTML 都可以设置和拥有的属性。

全局属性可以参考 全局属性 - HTML | MDN 链接。常见的全局属性如下:

  • id:定义唯一标识符( ID ),该标识符在整个文档中必须是唯一的。其目的是在链接(使用片段标识符),脚本或样 式(使用 CSS )时标识元素。

  • class:一个以空格分隔的元素的类名( classes )列表,它允许 CSS 和 Javascript 通过类选择器或者 DOM 方法来选 择和访问特定的元素。

  • style:给元素添加内联样式。

  • name

  • title:包含表示与其所属元素相关信息的文本。 这些信息通常可以作为提示呈现给用户,但不是必须的。

  • lang:指定元素内容的语言,这对于语音合成工具、翻译工具和搜索引擎等是非常有用的。

  • hidden:隐藏 HTML 元素。

  • data-*:允许开发者在 HTML 元素中存储自定义数据。

  • contenteditable:指定元素的内容是否可以被用户编辑。如果设置为 true,则用户可以直接在页面上编辑元素的内容。如果设置为 false,则用户不能编辑元素的内容。

    用途:富文本框。

3) 元素、标签名、标签要区分开。

例:p 叫标签名、<p> 叫标签,准确说是开始标签、</p> 叫标签,准确说是结束标签、<p>hello HTML!</p> 叫元素。

Content 有时也称为标签体。

5. 参考文档

MDN【推荐】:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element

W3C:https://www.w3.org/TR/html5

二、基本结构

html
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <title>第一个网页</title>
  </head>
  <body>
    <!-- 这是一个 p 元素 -->
    <p>hello HTML!</p>
  </body>
</html>

1. 文档类型与版本声明

<!DOCTYPE html>

作用:

① 指定文档类型

  • <!DOCTYPE html> 声明告诉浏览器这个文档是 HTML5 文档。这有助于浏览器正确地解析和渲染页面内容。

② 标准模式和怪异模式

  • 浏览器有两种渲染模式:标准模式和怪异模式。标准模式遵循最新的 HTML 和 CSS 规范,而怪异模式则模仿旧版浏览器的行为。
  • <!DOCTYPE html> 声明会触发标准模式,确保页面按照现代标准进行渲染。如果没有这个声明,浏览器可能会进入怪异模式,导致页面显示不正确。

2. root 标签

W3C 标准建议为 html 元素增加一个 lang 属性。作用:

① 帮助语音合成工具确定要使用的发音。

② 帮助翻译工具确定要使用的翻译规则。

3. <head> 中相关标签

1)页面标题标签

<title></title>

2)元信息标签

[1] <meta charset="UTF-8">

[2] <meta name="" content="">

Name 属性值:

属性说明备注
author作者
description描述
keywords关键字多个关键字用英文状态下的 , 隔开

更多 name 取值参见 标准元数据名称

[3] 自动跳转

http-equiv 是 HTML <meta> 标签的一个属性,它可以用来模拟 HTTP 响应头。

css
<meta http-equiv="refresh" content="2;url=">

标签的意思解释:

  • http-equiv="refresh":表示这个 <meta> 标签的作用是刷新页面。
  • content="2;url=":定义了刷新或重定向的时间和目标 URL。
    • 2 表示在 2 秒后执行刷新或重定向。
    • url= 后面通常跟着目标 URL,表示要重定向到的页面地址。如果没有指定 URL,则表示简单地刷新当前页面。

[4] OG 协议

当用户分享一个链接时,社交媒体会抓取该网页的 Open Graph 元数据,并根据这些数据生成一个预览卡片,包括标题、描述、图片等内容。

标签功能
og:title定义网页的标题(社交媒体分享时显示的标题)。
og:description定义网页的描述(社交媒体分享时的摘要)。
og:image定义网页的图片(社交媒体分享时显示的缩略图)。
og:url定义网页的 URL 地址(用于指向网页的链接)。
og:type定义网页的内容类型(如 websitearticlevideo.movie 等)。
html
<!-- Open Graph Meta Tags -->
<meta property="og:title" content="Learn Open Graph Protocol">
<meta property="og:description" content="This is an example of how to use Open Graph meta tags to improve social media sharing.">
<meta property="og:image" content="https://example.com/og-image.jpg">
<meta property="og:url" content="https://example.com">
<meta property="og:type" content="website">

<!-- Twitter Card Meta Tags (Optional) -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Learn Open Graph Protocol">
<meta name="twitter:description" content="This is an example of how to use Open Graph meta tags to improve social media sharing.">
<meta name="twitter:image" content="https://example.com/og-image.jpg">

可以使用在线网站生成各种社交应用的 OG 配置:OpenGraph

3)网页的 css 规范
html
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="icon" type="image/png" sizes="32x32" href="path/to/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="path/to/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="path/to/apple-touch-icon.png">
<link rel="manifest" href="path/to/site.webmanifest">

<link rel="manifest" href="path/to/site.webmanifest"> 用于指定 Web 应用清单文件( Web App Manifest )的路径。Web 应用清单文件是一个 JSON 文件,包含了有关网站作为 Web 应用程序的信息。它允许用户将网站添加到他们的设备主屏幕上,以创建一个类似于原生应用程序的快捷方式。

举个例子,假设你的网站提供了一个 Web 应用清单文件,其中包含了应用程序的名称、图标、启动画面等信息。通过在 HTML 文档中添加 <link rel="manifest" href="path/to/site.webmanifest">,你可以告诉浏览器该清单文件的位置。当用户访问你的网站时,浏览器会检查清单文件并根据其中的信息,将网站作为一个可安装的 Web 应用程序呈现给用户。用户可以选择将网站添加到他们的设备主屏幕上,从而创建一个快捷方式,以便更轻松地访问和使用你的网站。

这样,你的网站将像一个原生应用程序一样,在用户的设备主屏幕上显示图标和名称,提供更便捷和一体化的用户体验。

这些 <link> 元素是用于定义网站的不同图标和清单文件,以便在各种设备和浏览器环境中正确地显示和识别网站。

  1. <link rel="apple-touch-icon" sizes="180x180" href="path/to/apple-touch-icon.png">:这个标签定义了一个 Apple Touch 图标,用于 iOS 设备。sizes="180x180" 指定了图标的尺寸为 180x180 像素,href="path/to/apple-touch-icon.png" 指定了图标文件的路径。
  2. <link rel="icon" type="image/png" sizes="32x32" href="path/to/favicon-32x32.png">:这个标签定义了一个 32x32 像素的 PNG 图标。这个图标通常用于网站的 favicon,可以在多种浏览器环境中显示。
  3. <link rel="icon" type="image/png" sizes="16x16" href="path/to/favicon-16x16.png">:这个标签定义了一个 16x16 像素的 PNG 图标,也是用于网站的 favicon。这个尺寸的图标适用于需要较小图标的场景。
  4. <link rel="manifest" href="path/to/site.webmanifest">:这个标签指向一个 Web 应用清单文件( Web App Manifest ),它包含了有关网站作为 Web 应用程序的信息,如名称、图标、颜色主题等。这有助于将网站转换为可安装在设备主屏幕上的 Web 应用程序。
4)调用 JavaScript

<script language="javascript" src="menu.js"></script>

注意:language 属性已经被废弃,现在推荐使用 type 属性来指定脚本的类型。

5)style 标签
6)base 标签

<base> 是一个 HTML 元素,它用于为页面上的所有相对 URL 定义默认的基准 URL 或目标。

  • href 属性:定义了页面中所有相对链接的基准 URL。例如,如果你设置 <base href="http://example.com">,那么页面中的相对链接 <a href="page.html"> 实际上会链接到 http://example.com/page.html
  • target 属性:定义了页面中所有链接和表单的默认目标,决定它们在何处打开。例如,如果你设置 <base target="_blank">,那么页面中的所有链接都会在新窗口或新标签页中打开。_blank 表示新窗口,_self 表示当前窗口或标签页。

注意:一个页面中最多只能有一个 <base> 元素,且必须位于 <head> 元素内部。

第二章:常用元素

一、文本标签

1. 标题与段落标签

1) 标题标签:<hn></hn> 其中 n:1 ~ 6 重要性依次递减,大小依次变小。

属性属性值
alignLeft、right、center

2) 段落标签:<p></p>

属性属性值
alignLeft、right、center

3) 水平分隔线标签:<hr>

属性参数功能单位默认值
size设置水平分隔线的粗细pixel2
alignLeft center right设置水平分隔线的对齐方式center
width设置水平分隔线的宽度Pixel、%100%
color设置水平分隔线的颜色blank
noshadefalse true设置水平分隔线的 3D 阴影false

4) 换行标签:<br />

2. 文本的格式化标签

标签说明
<b></b>粗体
<i></i>斜体
<strong></strong>表示强调,一般为粗体
<em></em>表示强调,一般为斜体
<del></del>删除线
<ins></ins> 或者 <u></u>加下画线
<sup></sup>上标
<sub></sub>下标
<pre></pre>按原文显示

3. 特殊字符标签 / 字符实体

HTML 实体是一段以连字号( & )开头、以分号( ; )结尾的文本。

字符串实体常常用于显示保留字符(这些字符会被解析为 HTML 代码)和不可见的字符(如 “不换行空格“)。也可以用实体来代替其他难以用标准键盘键入的字符。

特殊字符字符代码特殊字符字符代码
空格&nbsp;"&quot;
<&It;©&copy;
>&gt;®&reg;
&&amp;X&times;

注意:实体对大小写敏感。

二、图像与超链接

1. 图像标签

<img src="图像地址URL" />

属性描述属性值
src图像 url 的路径。也可以把图片转为 base64 后直接放在 src 属性里。
title提示文本。鼠标悬停时显示该内容。
alt替换文本。图片不能显示的时候,显示该文字。
width图像的宽度。只需要写数字,不能带单位。
height图像的高度。只需要写数字,不能带单位。
align图像和文字之间的对齐方式top middle bottom left right
border边框宽度
hspace水平间距,设置图像左侧和右侧的空白。
vspace垂直间距,设置图像上面和下面的空白。

注:① 若 width 与 height 只设置其中一个,另一个自动缩放;② 图像默认情况与文字基线对齐。

css
img {
  border: 2px solid #ccc;        /* 替代 border 属性 */
  margin: 10px 15px;             /* 替代 vspace 和 hspace */
  float: left/right;             /* 替代 align="left/right" */
  vertical-align: middle;        /* 替代 align="middle" */
}

2. 超链接与路径

1) 超链接标签:<a>

属性属性值默认值说明 / 默认值
href#资源地址
target_self: 原窗口
_blank: 新窗口
_self控制打开方式
title链接提示文字
downloadurl填写此属性,就会调用浏览器下载功能。但仅支持当前资源与打开的 HTML 页面为同一台服务器(同源)。

href 的书写格式:相对路径和绝对路径。

绝对路径:在硬盘上的真正路径。

相对路径:src=”nav.jpg” 和 src=”./nav.jpg” 说明与 index.html 为同一目录。

                  src=”img/nav.jpg” 说明以 index.html 为路径,在 img 子目录下。

                  src=”../nav.jpg” 说明在 index.html 目录的上一级中。

2) 锚点链接

定义语法:<h3 name="锚点名">文字</h3> 或者 <h3 id="锚点名">文字</h3>

链接语法:<a href="#锚点名">链接的文字</a>

3) 影像地图

html
<img src="图像URL" usemap="#影像地图名称">

<map name="影像地图名称">
  <area shape="热区形状" coords="热区坐标" href="链接地址">
</map>

shape 属性值:① rect 矩形;② circle 圆形区域;③ poly 多边形区域。

coords 坐标定位方式:① rect 左上角与右下角;② circle 圆心与半径;③ poly 逆时针或顺时针经过的相关坐标记录,一般由开发工具生成。

4) <a> 其他用法

html
<!-- 网站链接 -->
<a href="https://xxx.com">课程介绍</a>
<!-- 锚点 -->
<a href="#show">写信给我</a>

<!-- 电子邮件链接 -->
<a href="mailto:123456@qq.com">写信给我</a>
<!-- 电话 -->
<a href="tel:10086">10086</a>
<!-- 短信 -->
<a href="sms:10086">发短息给我</a>

<!-- 下载压缩包 -->
<a href="https://xxx.com/archive/html.zip">下载 HTML 课件</a>

拓展:a 标签如果没有转为块级元素,直接在里面放图片标签,发现 a 标签的高度只有一行文字的大小(因为 a 是行内级元素),但单击图片任意区域可以正常跳转(因为 a 标签具有穿透性)。

3. iframe 标签

利用 iframe 元素可以实现在一个 HTML 文档中嵌入其他 HTML 文档。

html
<iframe src="" name="" frameborder="" width="" height=""></iframe>

frameborder 属性用于规定是否显示边框。

  • 1 :显示。
  • 0 :不显示。

a 元素 target 还可以取下面的值。

  • _parent :在父窗口中打开 URL。
  • _top :在顶层窗口中打开 URL。

问:发现在 src 属性上填写百度搜索(https://www.baidu.com)网站,无法正常显示。到底百度是怎么禁用的?

答:在 www.baidu.com 返回的响应头中有 X-Frame-Options: sameorigin 字段,意思是只允许同源(相同的协议、主机和端口)页面去请求。
比如:在 127.0.0.1:8080/index.html 网页引用了百度搜索网站,百度搜索网站发现不是同源页面的请求,就拒绝了。

name 属性的巧用

html
<body>
  <a href="http://www.taobao.com" target="yxts">淘宝</a>
  <a href="http://www.163.com" target="yxts">网易</a>
  <a href="../01-讲解作业/01-简历表格.html" target="yxts">简历</a>
  <br>
  <form action="http://www.so.com/s" target="yxts">
    <input type="text" name="wd">
    <button>搜索</button>
  </form>

  <hr>

  <iframe src="" width="1200" height="600" name="yxts"></iframe>
</body>

iframe 的 name 属性可以与 a、form 的 target 属性关联起来,这样超链接打开的内容就会显示在对应的 iframe 中。

三、表格标签

标签名标签的语义和作用标签的属性
table表格width: 设置表格的宽度。属性值是像素值或百分比。
height: 设置表格的高度。属性值是像素值或百分比。
border: 设置表格的边框。属性值是 1 或 ""。默认为 "",表示没有边框。
bordercolor: 表格边框颜色。
cellspacing: 设置单元格之间的间隙。属性值是像素值,默认 2 像素。
cellpadding: 规定单元边沿与其内容之间的空白。属性值是像素值,默认 1 像素。
align: 规定表格相对周围元素的对齐方式。属性值是 left/top/center。
background: 表格的背景图片。
bgcolor: 表格的背景颜色。
frame: 见下文。
caption表格标题
thead表格头部
tbody表格主体
tfoot表格页脚(表注)
tralign: 行内容的水平对齐方式,可以是 left、center、right。
valign: 行内容的垂直对齐方式,可以是 top、middle、bottom。
bgcolor: 行的背景颜色。
td单元格width / heigh: 单元格的宽和高,接受绝对值(意思是不可为负)及相对值(百分比) 。
align: 单元格内容的水平对齐方式,可选 left、center、right。
valign: 单元格内容的垂直对齐方式,可选 top、middle、bottom。
bgcolor: 单元格背景颜色。
colspan: 指定跨越的列数。
rowspan: 指定跨越的行数。
th表头单元格colspan: 指定跨越的列数。
rowspan: 指定跨越的行数。

当为表格 table 元素设置 border 时,可以为其设置的边框包括上边框、下边框、左边框、右边框。这 4 个边框都可以设置为显示或隐藏状态,见下表:

frame 的值描述frame 的值描述
box显示整个表格边框alove只显示表格的上边框
void不显示表格边框below只显示表格的下边框
hsides只显示表格的上下边框lhs只显示表格的左边框
vsides只显示表格的左右边框rhs只显示表格的右边框

注意:
thead、tbody、tfoot、tr 都有属性 height、align、valign。
th、td 都有属性 width、height、align、valign。
tr、thead、tbody、tfoot 没有 width 属性。

设置单元格宽高

给 td、th 设置 width 和 height 属性

  • 给 td、th 设置 width 属性,相当于设置列宽。如果给一列中的多个单元格设置 width,最大的宽度生效。
  • 给 td、th 设置 height 属性,相当于设置行高。同上。

给 tr、td 设置 height 有什么区别

  • 给 th、td 设置 height,实际行高会在设置的基础上加上上下的 cellpadding。
  • 给 tr 设置 height,就会是总行高。

valign="middle" 本质是加 vertical-align: middle;

浏览器给单元格默认垂直方向居中 vertical-align: middle;,所以 rowspan 的时候,不需要加任何属性就能垂直方向居中。

四、列表标签

列表标签可嵌套使用,浏览器会自动分层排列。

无序列表

html
<ul>
  <li></li>
</ul>

ul 属性:type=""(值可为 disc 实心圆、circle 空心圆、square 小方块。默认为实心圆)。

有序列表

html
<ol>
  <li></li>
</ol>

ol 的 type 属性:

Type 类型描述
type=1表示列表项目用数字标号 (1,2,3,...)
type=A表示列表项目用大写字母标号
type=a表示列表项目用小写字母标号
type=Ⅰ表示列表项目用大写罗马数字标号
type=i表示列表项目用小写罗马数字标号

此外 ol,还使用 start 属性表示有序列表的起始值,而 reversed 属性表示降序。

自定义列表

在 HTML 标签中,<dl>(Definition List)标签用于定义描述列表,该标签会与 <dt>((Definition Term)和 <dd>(Definition Description)一起使用。

其基本语法如下:

html
<dl>
  <dt>名词1</dt>
  <dd>名词1-解释1</dd>
  <dd>名词1-解释2</dd>
</dl>

<dt><dd> 个数没有限制,经常是一个 <dt> 对应多个 <dd>

五、表单标签

在 HTML 中,一个完整的表单通常由表单域、表单控件(也称为表单元素)和提示信息 3 个部分构成。

也有说表单由表单域、表单标签、表单按钮这三个部分组成。

1. 表单域

表单域是一个包含表单元素的区域。

在 HTML 标签中,<form> 标签用于定义表单域,以实现用户信息的收集和传递。<form> 会把它范围内的表单元素信息提交给服务器。

html
<form action="url地址" method="提交方式" name="表单域名称" target="_self">
  <!-- 各种表单元素控件 -->
</form>

常用属性。

属性属性值作用
actionurl 地址用于指定接收并处理表单数据的服务器程序的 url 地址
methodget / post用于设置表单数据的提交方式,其取值为 get 或 post
name名称用于指定表单的名称,以区分同一个页面中的多个表单域
target同超链接的 target 属性

2. 表单控件

  • input 输入表单元素。
  • select 下拉表单元素。
  • textarea 文本域元素。
1)input 表单元素
html
<input type="属性值" />

常用属性。

属性值描述
text定义单行的输入字段,用户可在其中输入文本。默认宽度为 20 个字符。
password定义密码字段。该字段中的字符被掩码。
radio定义单选按钮。
checkbox定义复选框。
hidden定义隐藏的输入字段。
file定义输入字段和"浏览"按钮,供文件上传。
button定义可点击按钮(多数情况下,用于通过 JavaScript 启动脚本)。
reset定义重置按钮。重置按钮会清除表单中的所有数据。
submit定义提交按钮。提交安钮会把表单数据发送到服务器。
image定义图像形式的提交按钮。

除 type 属性外,<input> 标签还有其他很多属性。其常用属性如下:

属性属性值描述
name由用户自定义定义 input 元素的名称
value由用户自定义规定 input 元素的值
属性的值不同,value 具有不同的意义。
type 值如果是 button/submit/reset,value 指定按钮的文字;type 如果是 text/password,value 指定默认文字;如果 type 是 checkbox/radio,value 指定真正提交到后台的值。
checkedchecked规定此 input 元素首次加载时应当被选中
maxlength正整数规定输入字段中的字符的最大长度

规则如下:

① name 和 value 是每个表单元素都有的属性值,主要给后台人员使用。

② name 表单元素的名字,要求单选按钮和复选框要有相同的 name 值。

③ checked 属性主要针对于单选按钮和复选框。主要作用一打开页面,就要可以默认选中某个表单元素。

④ maxlength 是用户可以在表单元素输入的最大字符数,一般较少使用。

2)select 标签
html
<select multiple>
  <option>选项1</option>
  <option>选项2</option>
  <option>选项3</option>
  ...
</select>

<option> 中定义 selected ="selected" 时,当前项即为默认选中项。

当表单被提交到服务器时,<select> 元素的 name 属性和被选中的 <option> 元素的 value 属性会一起被发送到服务器。

3)textarea 标签

使用场景:当用户输入内容较多的情况下,我们就不能使用文本框表单了,此时我们可以使用 <textarea> 标签。

在表单元素中,<textarea> 标签是用于定义多行文本输入的控件。

使用多行文本输入控件,可以输入更多的文字,该控件常见于留言板,评论。

html
<textarea rows="3" cols="20">
  文本内容
</textarea>

cols="每行中的字符数",rows="显示的行数"。在实际开发中不会使用,都是用 CSS 来改变大小。

css
textarea {
  width: 300px;    /* 替代 cols 属性 */
  height: 120px;   /* 替代 rows 属性 */
}

textarea 标签的大小可以通过用户拖动其右下角来改变。如果你想禁止这种行为,可以使用 CSS 的 resize 属性。将 resize 属性设置为 none 可以阻止用户改变 textarea 的大小。

css
textarea {
  resize: none;        /* 禁止调整大小 */
  resize: horizontal;  /* 只能水平调整 */
  resize: vertical;    /* 只能垂直调整 */
  resize: both;        /* 可以任意调整(默认值) */
}

注意:表单控件可以通过添加 disabled 属性,让表单控件不可用。

4)button 标签

<button> 标签用于创建一个可点击的按钮。在 <button> 元素和 </button> 结束标签之间的任何内容都将作为按钮的内容。

html
<button type="button">点击我!</button>

几个常用的属性:

  • type:定义按钮的类型。可能的值有 "button"(普通按钮)、"submit (默认值) "(提交按钮)和 "reset"(重置按钮)。
  • disabled:如果此属性存在,按钮将被禁用,用户不能点击它。
  • autofocus:如果此属性存在,当页面加载时,按钮将自动获得焦点。
  • form:定义按钮所属的一个或多个表单。值是表单元素的 id 列表,以空格分隔。form 属性只在 <button> 标签的 type 属性为 "submit" 或 "reset" 时有效。

备注:对于 button 标签,里面的文字会自动水平垂直居中。

3. 提示信息

1)label 标签

<label> 标签为 input 元素定义标注(标签)。 <label> 标签用于绑定一个表单元素,当点击 <label> 标签内的文本时,浏览器就会自动将焦点(光标)转到或者选择对应的表单元素上,用来增加用户体验。

html
<label for="sex">男</label>
<input type="radio" name="sex" id="sex" />

核心:<label> 标签的 for 属性应当与相关元素的 id 属性相同。也可以使用 label 标签包裹住 input,这样就不用指定 for 属性了。

2)fieldset / legend 标签

<fieldset> 标签用于在表单中分组相关元素。会在相关元素周围绘制一个框。

<legend> 标签为 fieldset 元素定义标题。

html
<form action="/demo/action_page.php">
  <fieldset>
    <legend>个人信息:</legend>
    <label for="fname">名字:</label>
    <input type="text" id="fname" name="fname"><br><br>
    <label for="lname">姓氏:</label>
    <input type="text" id="lname" name="lname"><br><br>
    <label for="email">电邮:</label>
    <input type="email" id="email" name="email"><br><br>
    <label for="birthday">生日:</label>
    <input type="date" id="birthday" name="birthday"><br><br>
    <input type="submit" value="提交">
  </fieldset>
</form>

效果如下。

第三章:HTML5 新标签

一、新增语义化标签

1. 新增排版布局标签

标签名语义和功能属性单标签还是双标签
header页面或节的头部区域
ps: header 与 footer 互斥,即 header 标签中不能有 footer。
双标签
nav导航条双标签
footer页面或节的脚部区域
ps: footer 与 header 互斥,即 footer 标签中不能有 header。
双标签
section页面中的一个独立区域或者文章中的一节双标签
aside侧边栏双标签
article文章、新闻、博客、评论等。双标签
main页面主要内容部分双标签
hgroup包裹连续的标题,如文章主标题和副标题的组合。双标签
figure表示一段独立的流内容,比如文章中的插图。双标签
figcaption表示 figure 中的标题双标签

网页结构标签

1)<section> 标签用于对网页内容进行分区、分块;定义文档中的节、如章节、页眉、页脚或文档中的其他部分。一般情况下,<section> 标签由内容和标题组成。还要注意:①<section> 标签表示一段专题性的内容,一般会带有标题,没有标题的内容区块不要使用 <section> 标签。②当一个容器需要被直接定义样式或通过脚本定义时,推荐 <div>

2)<article> 标签代表一个独立的、完整的相关内容块,可独立于页面其他内容使用。例如:一篇完整的论坛贴子、一篇博客文章、一个用户评论等。一个 <article> 标签里还会有 header、footer。<article> 标签可套用。

3)<nav> 标签用做导航条,一个网页可有多个 <nav> 标签,比如还会出现侧边导航条等。

4)<aside> 标签用来装载非正文的内容,被视为页面里一个单独的部分。它与页面的主要内容是分开的,可被删除的,而不会影响到网页所要传达的信息。<aside> 标签可以被包含在 <article> 标签内,作为主要内容的附属信息;也可以在 <article> 标签之外使用,作为页面或站点全局的附属信息部分,如广告、友情链接、侧边栏、导航条等。

5)<header> 标签定义文档的页眉,通常是一些引导和导航信息。它不局限于网页头部,也可写在网页内容里面。通常 <header> 标签至少包含(但不局限于)一个标题(<h1> ~ <h6>),还可包括 <hgroup> 标签,以及表格内容、标识 logo、搜索表单、<nav> 导航等。

6)<footer> 标签简言之为页脚,可以在一个网页多次使用,也可以在 <article> 标签或者 <section> 标签中添加 <footer> 标签。

分组标签

1)<figure> 标签和 <figcaption> 标签:<figure> 标签用于定义独立的流内容,一般指一个单独的单元。<figcaption> 标签用于为 <figure> 标签组添加标题,一个 <figure> 标签内只能有一个 <figcaption> 标签,该标签只能放在 <figure> 标签的第一个或最后一个子标签位置。举例:有一个网站介绍中国各地方的旅游景点,如杭州的西湖、北京的长城等分别配一张图和一段文字介绍及一个标题。

2)<hgroup> 标签:可以将标题或子标题进行分组,通常它与 <h1>~<h6> 标签组合使用。一个内容块中的标题可以通过 <hgroup> 标签组成一组。注意以下几点:①如果只有一个标题标签,不建议使用 <hgroup>。②当出现一个以上的标题与标签时,推荐使用 <hgroup> 标签。③当一个标题包含副标题、<section><article> 标签时,建议将 <hgroup> 标签和标题相关标签放在 <header> 标签容器中。

3)<dialog> 标签:①主要用于人与人之间的对话。该标签还包括 <dt><dd> 两个组合标签,它们常常同时使用。<dt> 表示说话者,<dd> 表示说话者说的内容。②用于表示一个对话框或其他交互式窗口,如模态框。

注意:
W3C 标准中没有 hgroup 标签。
WHATWG 标准中没有 main 标签,所有版本 IE 均不支持 main 标签。

2. 新增状态标签 / 行内语义性标签

1)meter 与 progress

标签名语义和功能属性单标签还是双标签
meter定义已知范围或分数值内的标量测量。 一般用于表示静态的度量,如电池电量、磁盘用量等。max:最大值。 min:最小值。 high:较大的值。 low:较小的值。 optimum:最优值。 value:当前值。双标签
progress定义某个任务完成的进度的指示器。 一般用于表示动态的进度,如进度条。max:总共的工作量。 value:已完成的工作量。双标签

设置 meter 样式:

css
meter {
  /* 可以设置宽高 */
}
meter::-webkit-meter-bar {
  /* 可以设置总体边框,空白区域背景等 */
}
meter::-webkit-meter-optimum-value {
  /* 设置最优值范围内的样式 */
}
meter::-webkit-meter-suboptimum-value {
  /* 凑合范围内的样式 */
}
meter::-webkit-meter-even-less-good-value {
  /* 糟糕范围内的样式 */
}

设置 progress 样式:

css
progress {
  /* 所有浏览器都可以设置宽高、边框 */
  /* IE、firefox 可以设置空白区域背景色 */
  /* color 可以设置 IE 下进度条区域的背景色 */
  /* 只有设置了 border 或者 background 属性, chrome 才可以设置空白区域颜色 */
}
::-webkit-progress-bar {
  /* chrome 空白区域颜色 */
}
::-webkit-progress-value {
  /* chrome 设置进度条区域 */
}
::-moz-progress-bar {
  /* firefox 设置进度条区域 */
}

2)<time> 标签

datetime 属性,它用于提供日期或时间的机器可读形式。这对于搜索引擎和其他 web 技术非常有用,因为它们可以更准确地解析和处理日期和时间数据。

<time datetime="2019-10-8">2019年10月8日</time>

② 日期与时间之间用 T 隔开,T 表示时间

     <time datetime="2019-10-8T21:00">2019年10月8日21:00</time>

③ Z 表示给机器编码时使用 UTC 标准时间

     <time datetime="2019-10-8T21:00Z">2019年10月8日</time>

3)<video> 标签和 <audio> 标签

3. 文本相关

1)新增详情标签
标签名语义和功能属性单标签还是双标签
details表示一个可以展开或收起的细节或内容双标签
summary表示 details 中标题双标签
html
<details>
  <summary>更多信息</summary>
  <p>这里是更多的信息,可以被展开和收起。</p>
</details>
2)新增注音标签
标签名语义和功能属性单标签还是双标签
ruby包裹需要注音的文字双标签
rt写具体的注音双标签

ruby 元素由一个或多个字符(需要一个解释 / 发音)和一个提供该信息的 rt 元素组成:

html
同志们,一起来享受<ruby>饕餮<rt>taotie</rt></ruby>盛宴!
3)新增文本标签
标签名语义和功能属性单标签还是双标签
mark用于对某个词语进行标记双标签
cite引用某个文献双标签

备注:mark 元素定义带有记号的文本,请在需要突出显示文本时使用,如搜索引擎搜索页面。

二、表单新增功能

1. 表单控件新增属性

属性名属性含义
placeholder设置输入框、文本域的提示文字。
required设置表单控件必填或者必选,否则表单无法提交,该属性不需要设置值。
autofocus自动获取焦点,,该属性不需要设置值。
autocomplete是否显示输入记录,值: on(默认值)、off。
pattern值是正则表达式,对文本框或文本域进行验证,表单提交的时候验证。
form该属性的值可以指定表单的 id 值,与表单关联,表单控件可以写在表单的外面。

2. 新增的表单控件

input 元素的 type 属性新增的值。

1)输入框类(5个)
html
<!-- 邮箱 提交表单验证 -->
<input type="email" placeholder="请输入邮箱">

<!-- URL 提交表单验证 -->
<input type="url" placeholder="请输入网址">

<!-- 电话 不会进行验证,移动端点击弹出数字键盘 -->
<input type="tel" placeholder="请输入电话">

<!-- 数字 非数字无法输入,提交表单验证数字范围 -->
<input type="number" placeholder="请输入数字">
<input type="number" max="16" min="-10" placeholder="请输入数字">
<input type="number" step=".1" min=".1" placeholder="小数">  <!-- 最小 0.1 -->

<!-- 搜索框 没有验证功能 -->
<input type="search" placeholder="搜索框">
2)范围选择框(1个)
html
<input type="range" name="num01">
<input type="range" max="1000" min="-1000" name="num02" value="-1000">
<input type="range" max="10" min="0" step="2" name="num03">
3) 颜色选择框(1个)
html
<input type="color">
4)日期时间选择框类(5个)
html
<!-- 选择年月日 -->
<input type="date">
<!-- 选择年月 -->
<input type="month">
<!-- 选择年周 -->
<input type="week">
<!-- 选择时间 -->
<input type="time">
<!-- 选择日期和时间 -->
<input type="datetime-local">

3. form 标签新增属性

novalidate:让表单不进行验证,该属性不要值。

html
<form action="/submit" method="post" novalidate>
  <label for="email">Email:</label>
  <input type="email" id="email" name="email">
  <input type="submit" value="Submit">
</form>

即使 <input> 元素的 type 属性被设置为 email,浏览器也不会在提交表单时检查输入的是否是有效的电子邮件地址,因为 <form> 元素上设置了 novalidate 属性。

4. 输入框的搜索提示

html
<input type="search" list="searchData">
<datalist id="searchData">
  <option value="hello world"></option>
  <option value="hello haha"></option>
  <option value="nihao"></option>
  <option value="ab"></option>
  <option value="aaa"></option>
  <option value="abc"></option>
  <option value="abb"></option>
</datalist>

三、音视频标签

1. 标签与常用属性

<video> 标签

属性描述
autoplayautoplay如果出现该属性,则视频在就绪后马上播放。
ps: 谷歌浏览器自动播放只在静音下(muted)。
controlscontrols如果出现该属性,则向用户显示控件,比如播放按钮。
looploop如果出现该属性,则当媒体文件完成播放后再次开始播放。
mutedmuted如果出现该属性,视频的音频输出为静音。
posterURL规定视频正在下载时显示的图像,直到用户点击播放按钮(封面)。
preloadauto
metadata
none
auto:视频在页面加载时就开始加载,并准备播放。这意味着视频会尽快开始下载。
metadata:只加载关于视频(如长度)的元数据。
none:视频不会在页面加载时就开始加载,除非用户开始播放视频。
ps: 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。
srcURL要播放视频的 URL。
widthpixels设置视频播放器的宽度。
heightpixels设置视频播放器的高度。

<audio> 标签

属性描述
autoplayautoplay如果出现该属性,则音频在就绪后马上播放。
controlscontrols如果出现该属性,则向用户显示音频控件(比如播放/暂停按钮)。
looploop如果出现该属性,则每当音频结束时重新开始播放。
mutedmuted如果出现该属性,则音频输出为静音。
preloadauto:页面加载后会立即开始加载音频文件,无论是否会播放。
metadata:页面加载后只加载音频的元数据,包括例如长度、编码、轨道数、是否有封面图等信息。
none:页面加载后不加载音频文件,除非用户进行操作,如点击播放。
规定当网页加载时,音频是否默认被加载以及如何被加载。
srcURL规定音频文件的 URL。

<source> 标签

<source> 标签允许您指定备用的视频/音频/图像文件,浏览器可以根据浏览器支持或视口宽度进行选择。浏览器将选择它支持的第一个 <source>

属性描述
mediamedia_query描述媒体资源的媒体类型,它的值是一个媒体查询。
srcURL规定媒体文件的 URL。
typeMIME_type规定媒体资源的 MIME 类型。

video 标签也可以使用上面的属性。

html
<video src="video_hd.mp4" controls>
  <!-- 屏幕宽度大于等于 800 像素时使用的高清视 -->
  <source src="video_hd.mp4" type="video/mp4" media="(min-width: 800px)">
  <!-- 屏幕宽度小于 800 像素时使用的标清视频 -->
  <source src="video_sd.mp4" type="video/mp4" media="(max-width: 799px)">
  您的浏览器不支持 HTML5 视频标签。
</video>

<audio src="audio/high-quality.mp3" controls>
  <source src="audio/high-quality.mp3" type="audio/mpeg" media="(min-width: 1200px)">
  <source src="audio/medium-quality.mp3" type="audio/mpeg" media="(min-width: 768px)">
  <source src="audio/low-quality.mp3" type="audio/mpeg">
  <source src="audio/fallback.ogg" type="audio/ogg">
  您的浏览器不支持音频播放。
</audio>

2. 事件属性

在自定义视频控件与样式时,可能会用到以下知识。

其实,HTML 的标签属性不光有全局属性、特定属性,还有事件属性。

音视频属性

属性描述
duration总时长,单位为秒。
paused当前是否是暂停状态。
playbackRate播放倍速。1 为正常。
volume表示音频的音量。值从 0.0(静音)到 1.0(最大音量)。
currentTime当前播放时间,单位为秒。为其赋值将会使媒体跳到一个新的时间。

音视频方法

方法名含义
play()开始播放
pause()暂停播放

事件

事件名含义
pause暂停时触发
ended结束时触发
play开始播放时触发
timeupdate属性 currentTime 变化时触发。会随着播放进度的变化不断触发
loadeddata事件在第一帧数据加载完成后触发

Updated at:

Released under the MIT License.