1. HTML5 简介
HTML5 是最新的 HTML 标准,于 2014 年 10 月由 W3C 完成标准制定。它增加了许多新特性,包括语义化标签、多媒体支持、图形效果、离线存储等。
1.1 HTML5 文档基本结构
html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML5 文档标题</title>
</head>
<body>
<!-- 页面内容 -->
</body>
</html>
-
<!DOCTYPE html>
: 声明文档类型为 HTML5 -
<html>
: 根元素,lang
属性指定文档语言 -
<head>
: 包含文档的元信息 -
<meta charset="UTF-8">
: 指定字符编码为 UTF-8 -
<title>
: 定义文档标题,显示在浏览器标签页上 -
<body>
: 包含文档的可见内容
1.2HTML5 全局属性
属性 | 描述 | 示例 |
---|---|---|
id |
定义元素的唯一标识符,用于在文档中唯一标识一个元素 | <div id="uniqueDiv">内容</div> |
class |
定义元素的类名,用于 CSS 样式或 JavaScript 操作 | <div class="myClass">内容</div> |
style |
定义元素的内联样式 | <div style="color:red;">红色文本</div> |
title |
定义元素的额外信息,鼠标悬停时显示 | <div title="提示信息">内容</div> |
lang |
定义元素内容的语言代码(如 en 、zh ) |
<div lang="en">English Content</div> |
dir |
定义元素内容的文本方向(ltr 、rtl 、auto ) |
<div dir="rtl">从右到左的文本</div> |
hidden |
定义元素是否隐藏(等同于 display: none ) |
<div hidden>隐藏内容</div> |
contenteditable |
定义元素是否可编辑(true 或 false ) |
<div contenteditable="true">可编辑内容</div> |
tabindex |
定义元素的 Tab 键顺序,控制元素的焦点顺序 | <button tabindex="1">按钮1</button> |
accesskey |
定义访问元素的快捷键 | <button accesskey="s">保存</button> |
draggable |
定义元素是否可拖动(true 或 false ) |
<div draggable="true">可拖动内容</div> |
spellcheck |
定义是否对元素内容进行拼写检查(true 或 false ) |
<input type="text" spellcheck="true"> |
translate |
定义元素内容是否翻译(yes 或 no ) |
<div translate="no">不翻译的内容</div> |
data-* |
自定义数据属性,用于存储私有数据 | <div data-id="123" data-name="example">内容</div> |
2. HTML5 中的标签
2.1文本格式化标签
标签 | 描述 | 属性 | 示例 |
---|---|---|---|
<h1> ~<h6> |
标题标签,影响搜索引擎排名 | 无特有属性 | <h1>一级标题</h1> |
<p> |
段落标签 | 无特有属性 | <p>这是一个段落。</p> |
<em> |
强调文本,通常显示为斜体 | 无特有属性 | <em>强调文本</em> |
<strong> |
定义语气更强的强调文本,通常显示为粗体 | 无特有属性 | <strong>重要文本</strong> |
<del> |
定义删除的文本 | 无特有属性 | <del>删除文本</del> |
<ins> |
定义插入文档的文本 | 无特有属性 | <ins>插入文本</ins> |
<b> |
纯文本加粗,不强调语义 | 无特有属性 | <b>加粗文本</b> |
<i> |
纯文本斜体,不强调语义 | 无特有属性 | <i>斜体文本</i> |
<u> |
下划线文本,用于表示链接或特殊含义 | 无特有属性 | <u>下划线文本</u> |
<s> |
表示文本不再有效 | 无特有属性 | <s>不再有效的文本</s> |
<mark> |
高亮文本,用于突出显示文本 | 无特有属性 | <mark>高亮文本</mark> |
<small> |
小号文本,用于展示次要或辅助信息 | 无特有属性 | <small>小号文本</small> |
<sub> |
下标,如化学公式中的指数 | 无特有属性 | <sub>下标文本</sub> |
<sup> |
上标,如平方根符号 | 无特有属性 | <sup>上标文本</sup> |
<br> |
换行标签,用于强制换行 | 无特有属性 | 这是第一行<br>这是第二行 |
<hr> |
水平线标签,用于分隔内容 | 无特有属性 | <hr> |
2.2图像视频音频与链接标签
标签 | 描述 | 属性 | 示例 |
---|---|---|---|
<img> |
定义HTML页面中的图像 | src :指定图像的URL;alt :图像的替换文本 |
<img src="image.jpg" alt="描述性文字"> |
<a> |
定义超链接 | href :指定链接目标;target :规定打开新页面的位置 |
<a href="https://example.com" target="_blank">链接文本</a> |
<audio> |
定义音频内容 | src :音频文件的路径;controls :显示音频播放控件;autoplay :自动播放音频;loop :循环播放音频 |
<audio src="audio.mp3" controls autoplay loop></audio> |
<video> |
定义视频内容 | src :视频文件的路径;controls :显示视频播放控件;autoplay :自动播放视频;loop :循环播放视频;width /height :设置视频的宽度和高度 |
<video src="video.mp4" controls autoplay loop width="640" height="480"></video> |
<source> |
为<audio> 或<video> 指定多种媒体资源 |
src :媒体文件的路径;type :媒体文件的MIME类型 |
<audio controls><source src="audio.mp3" type="audio/mpeg"><source src="audio.ogg" type="audio/ogg"></audio> |
2.3列表标签
标签 | 描述 | 属性 | 示例 |
---|---|---|---|
<ul> |
定义无序列表 | 无特有属性 | <ul><li>项目1</li><li>项目2</li></ul> |
<ol> |
定义有序列表 | start :定义第一个数字 |
<ol start="3"><li>项目1</li><li>项目2</li></ol> |
<li> |
定义列表项 | 无特有属性 | <li>列表项</li> |
2.4HTML5 描述列表标签
|--------|----------------------|--------------|-------------------------------------------------------------|
| <dl>
| 定义描述列表,用于将术语和描述组合在一起 | 无特有属性,支持全局属性 | <dl><dt>术语1</dt><dd>描述1</dd><dt>术语2</dt><dd>描述2</dd></dl>
|
| <dt>
| 定义描述列表中的术语或名称 | 无特有属性,支持全局属性 | <dt>术语1</dt>
|
| <dd>
| 定义描述列表中术语的描述或解释 | 无特有属性,支持全局属性 | <dd>描述1</dd>
|
2.5表格标签
标签 | 描述 | 属性 | 示例 |
---|---|---|---|
<table> |
定义表格 | border :规定表格的单元格是否具有边框;cellspacing :设置单元格之间的空白;cellpadding :规定单元边沿与其内容之间的空白;width /height :设置表格的宽度和高度 |
<table border="1" cellpadding="5" cellspacing="0" width="500" height="300"> |
<tr> |
定义表格中的行 | 无特有属性 | <tr><td>行内容</td></tr> |
<td> |
定义表格中的单元格 | rowspan :行跨度;colspan :列跨度 |
<td rowspan="2" colspan="2">跨行跨列单元格</td> |
<th> |
定义表头单元格 | 无特有属性 | <th>表头单元格</th> |
<thead> |
定义表格的头部区域 | 无特有属性 | <thead><tr><th>表头</th></tr></thead> |
<tbody> |
定义表格的主体区域 | 无特有属性 | <tbody><tr><td>主体内容</td></tr></tbody> |
<tfoot> |
定义表格的脚注区域 | 无特有属性 | <tfoot><tr><td>脚注内容</td></tr></tfoot> |
<caption> |
定义表格的标题,位于表格的顶部或底部 | 无特有属性 | <caption>表格标题</caption> |
2.6表单与输入标签
标签 | 描述 | 属性 | 示例 |
---|---|---|---|
<form> |
定义表单 | action :表单数据提交地址;method :表单提交方式(get 或post );autocomplete :是否启用自动完成功能(on /off );enctype :表单数据编码类型(如application/x-www-form-urlencoded );name :表单名称;novalidate :取消表单验证;target :提交后响应的显示目标(如_blank ) |
<form action="submit.php" method="post" autocomplete="on" enctype="application/x-www-form-urlencoded" name="myForm" novalidate target="_self"></form> |
<input> |
定义输入框 | type :输入框类型(如text 、password 、submit 、reset 、button 、checkbox 、radio 等);name :输入框名称;value :输入框默认值;placeholder :输入框提示文本;required :是否必填;readonly :是否只读;disabled :是否禁用;autofocus :是否自动获取焦点;form :关联表单的id ;list :关联<datalist> 的id |
<input type="text" name="username" value="默认值" placeholder="请输入用户名" required readonly disabled autofocus form="myForm" list="datalistId"> |
<textarea> |
定义多行文本框 | rows :设置多行文本框的行数;cols :设置多行文本框的列数;name :名称;placeholder :提示文本;required :是否必填;readonly :是否只读;disabled :是否禁用;maxlength /minlength :最大/最小长度 |
<textarea rows="4" cols="50" name="description" placeholder="请输入描述" required readonly disabled maxlength="100" minlength="10"></textarea> |
<button> |
定义按钮 | type :按钮类型(如submit 、reset 、button );name :按钮名称;value :按钮值;disabled :是否禁用;form :关联表单的id ;formaction :覆盖表单的action 属性;formenctype :覆盖表单的enctype 属性;formmethod :覆盖表单的method 属性;formnovalidate :覆盖表单的novalidate 属性 |
<button type="submit" name="submitBtn" value="submitValue" disabled form="myForm" formaction="submit.php" formenctype="application/x-www-form-urlencoded" formmethod="post" formnovalidate>提交</button> |
2.6.1HTML5表单输入框类型
类型 | 描述 | 示例 |
---|---|---|
text |
单行文本输入框 | <input type="text" name="username"> |
password |
密码输入框,输入内容以点或星号显示 | <input type="password" name="password"> |
checkbox |
复选框,可多选 | <input type="checkbox" name="hobby" value="reading">阅读 |
radio |
单选框,同一组中只能选一个 | <input type="radio" name="gender" value="male">男 |
submit |
提交按钮,用于提交表单数据 | <input type="submit" value="提交"> |
reset |
重置按钮,用于将表单恢复到初始值 | <input type="reset" value="重置"> |
button |
普通按钮,需配合JavaScript使用 | <input type="button" value="点击我"> |
file |
文件上传输入框,用于选择文件上传 | <input type="file" name="avatar"> |
date |
日期选择输入框 | <input type="date" name="birthday"> |
time |
时间选择输入框 | <input type="time" name="appointment"> |
datetime-local |
本地日期和时间选择输入框 | <input type="datetime-local" name="event-time"> |
email |
电子邮件输入框,自动验证输入内容是否为有效电子邮件格式 | <input type="email" name="email"> |
number |
数字输入框,可设置最小值、最大值和步长 | <input type="number" name="age" min="18" max="99" step="1"> |
range |
范围选择输入框,以滑块形式选择数值范围 | <input type="range" name="volume" min="0" max="100"> |
url |
网址输入框,自动验证输入内容是否为有效网址格式 | <input type="url" name="website"> |
search |
搜索输入框,通常带有清除按钮 | <input type="search" name="query"> |
tel |
电话号码输入框 | <input type="tel" name="phone"> |
2.7HTML5表单辅助标签
标签 | 描述 | 示例 |
---|---|---|
<label> |
定义表单控件的标签,增强用户体验和可访问性 | <label for="username">用户名:</label><input type="text" id="username" name="username"> |
<fieldset> |
对表单中的相关元素进行分组 | <fieldset><legend>个人信息</legend><label for="name">姓名:</label><input type="text" id="name" name="name"></fieldset> |
<legend> |
定义<fieldset> 元素的标题 |
<fieldset><legend>个人信息</legend>...</fieldset> |
<datalist> |
定义输入字段的选项列表,提供自动完成功能 | <input list="browsers" name="browser"><datalist id="browsers"><option value="Internet Explorer"><option value="Firefox"><option value="Chrome"></datalist> |
<output> |
定义不同类型的输出,如计算结果 | <form oninput="a.value=parseInt(b.value)+parseInt(c.value)">0<input type="range" id="b" value="50">100+<input type="number" id="c" value="50">=<output name="a" for="b c"></output></form> |
<progress> |
定义任何类型的进度条 | <progress value="22" max="100"></progress> |
<meter> |
定义预定义范围内的标量测量(或分数) | <meter value="2" min="0" max="10">2 out of 10</meter> |
2.8HTML5新增语义化标签 (基本是在手机端使用的)
标签 | 描述 | 属性 | 示例 |
---|---|---|---|
<article> |
定义页面独立的内容区域 | 无特有属性 | <article>这是独立的内容区域</article> |
<aside> |
定义页面的侧边栏内容 | 无特有属性 | <aside>这是侧边栏内容</aside> |
<header> |
定义文档的头部区域 | 无特有属性 | <header>这是文档头部区域</header> |
<footer> |
定义section或document的页脚 | 无特有属性 | <footer>这是页脚内容</footer> |
<nav> |
定义导航链接的部分 | 无特有属性 | <nav>这是导航链接部分</nav> |
<section> |
定义文档中的节(section) | 无特有属性 | <section>这是文档中的一个节</section> |