基本结构
在编译器输入 ! 后,按下 Tab 键,使用 Emmet 补全,即可生成一个基本的 HTML 结构。
一个网页的基本html结构如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body>
</body></html><!DOCTYPE html>
HTML 文档的声明,告诉浏览器该文档是 HTML5 文档。
<html>
HTML 文档的根元素,包含了文档的所有内容。
<head>
<head> 元素包含了文档的元数据,如字符编码、视口设置、标题等。
<head> 元素包含以下元素:
<meta>元素:定义文档的元数据,如字符编码、视口设置、标题等。<title>元素:定义文档的标题,显示在浏览器的标题栏或标签页上。
<head> 元素的常见用法如下:
<head> <meta charset="UTF-8"> <title>Document</title></head><body>
<body> 元素包含了文档的主体内容,如文本、图像、链接、表格等。
常用标签
标题标签
HTML 提供了六级标题标签,分别对应不同级别的标题。六级标题标签分别为 <h1> 到 <h6>。
<h1>一级标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4><h5>五级标题</h5><h6>六级标题</h6>段落标签
HTML 段落标签用于定义段落。段落标签为 <p>。
<p>这是一个段落。</p>换行标签
HTML 换行标签用于在文本中插入换行符。换行标签为 <br>。
<p>这是一个段落。<br>这是第二个段落。</p>强调标签
常用的强调类型有 加粗 、 斜体 、下划线 和 删除线。
| 标签(有语义) | 标签(无语义) | 功能 |
|---|---|---|
<strong> | <b> | 加粗 |
<em> | <i> | 斜体 |
<ins> | <u> | 下划线 |
<del> | <s> | 删除线 |
更推荐使用具有语义的标签,因为它们更符合 HTML 的语义化原则,能够更好地描述文档的结构和内容。
注释标签
HTML 注释标签用于添加注释,注释不会被浏览器显示。注释标签为 <!-- -->。
<!-- 这是一个注释 -->图像标签
HTML 图像标签用于在文档中插入图像。图像标签为 <img>。
<!-- src属性用于指定图像的 URL,title属性用于指定图像的标题。 --><!-- alt属性用于描述图像,当图像无法显示时,alt 属性将显示在图像下方。 --><img src="image.jpg" alt="这是一个图像" title="图像"><img> 标签还有些属性,如 width、height、align、hspace、vspace 等,建议避免使用这些属性,转而使用 CSS 来控制图像的大小和位置。
视频标签
HTML 视频标签用于在文档中插入视频。视频标签为 <video>。
<!-- src属性用于指定视频的 URL,title属性用于指定视频的标题。 --><!-- controls属性用于显示视频的控制条。 --><video src="video.mp4" title="视频" controls></video>视频标签的其他属性:
| 属性 | 描述 |
|---|---|
width | 指定视频的宽度 |
height | 指定视频的高度 |
autoplay | 视频加载后自动播放 |
loop | 视频播放结束后循环播放 |
muted | 视频默认静音 |
poster | 播放前的图片 |
视频标签的兼容性写法:
<video title="视频" controls> <source src="video.mp4" type="video/mp4"> <source src="video.ogg" type="video/ogg"> <source src="video.webm" type="video/webm"> <p>您的浏览器不支持 video 标签。</p></video>浏览器会检查 <source> 元素,并且播放第一个与其自身相匹配的媒体。
音频标签
HTML 音频标签用于在文档中插入音频。音频标签为 <audio>。
<!-- src属性用于指定音频的 URL,title属性用于指定音频的标题。 --><!-- controls属性用于显示音频的控制条。 --><audio src="audio.mp3" title="音频" controls></audio>链接标签
HTML 链接标签用于创建超链接。超链接标签为 <a>。
<a href="https://www.example.com">这是一个链接</a>超链接标签的其他属性:
| 属性 | 描述 |
|---|---|
target | 指定链接在何处打开,_blank 表示在新窗口打开,_self 表示在当前窗口打开 |
title | 指定链接的标题 |
锚点链接 用于在文档中创建跳转到指定位置的链接。锚点链接的目标位置需要通过 id 属性来指定。
<!-- 跳转到 id 为 "section2" 的位置 --><a href="#section2">跳转到第二部分</a>
<!-- 目标位置 --><h2 id="section2">第二部分</h2>容器标签
HTML 提供了两种常用的容器标签:<div> 和 <span>。这两个标签都用于包裹其他内容,但它们有不同的特性和用途。
<div> 标签
<div> 标签是一个块级元素,用于定义文档中的一个块级区域。它通常用于对内容进行分组,以便使用 CSS 进行样式化或使用 JavaScript 进行操作。
<div> <h2>这是一个标题</h2> <p>这是一个段落。</p></div><div> 标签的特点:
- 块级元素,会独占一行
- 默认没有特定的样式
- 常用于页面布局和内容分组
- 可以嵌套使用
<span> 标签
<span> 标签是一个内联元素,用于定义文本中的一个内联区域。它通常用于对文本的一部分进行样式化或使用 JavaScript 进行操作。
<p>这是一段<span style="color: red;">红色</span>的文本。</p><span> 标签的特点:
- 内联元素,不会独占一行
- 默认没有特定的样式
- 常用于文本的局部样式化
- 不能包含块级元素
<div> 和 <span> 的区别
| 特性 | <div> | <span> |
|---|---|---|
| 显示类型 | 块级元素 | 内联元素 |
| 默认宽度 | 100% 父元素宽度 | 内容宽度 |
| 换行行为 | 自动换行 | 不自动换行 |
| 包含内容 | 可以包含任何元素,包括块级元素 | 只能包含内联元素和文本 |
| 主要用途 | 页面布局、内容分组 | 文本局部样式化 |
在实际开发中,<div> 和 <span> 经常与 CSS 结合使用,用于创建复杂的页面布局和样式。
列表标签
HTML 列表标签用于创建有序列表(<ol>)和无序列表(<ul>)。
<!-- 有序列表 --><ol> <li>第一项</li> <li>第二项</li> <li>第三项</li></ol>
<!-- 无序列表 --><ul> <li>第一项</li> <li>第二项</li> <li>第三项</li></ul>
<!-- 描述列表 --><dl> <dt>名词解释</dt> <dd>名词解释的详细描述1。</dd> <dd>名词解释的详细描述2。</dd> <dt>动词解释</dt> <dd>动词解释的详细描述1。</dd> <dd>动词解释的详细描述2。</dd></dl>有序列表标签的其他属性:
| 属性 | 描述 |
|---|---|
type | 指定列表项的标记类型,1 表示数字,A 表示大写字母,a 表示小写字母,I 表示大写罗马数字,i 表示小写罗马数字 |
start | 指定列表项的起始数字 |
有序列表和无序列表中只能包含 <li> 元素,描述列表可包含 <dt> 和 <dd> 元素,一个 <dt> 元素可以对应多个 <dd> 元素。
表格标签
HTML 表格标签用于创建表格。表格标签为 <table>。
<table> <thead> <tr> <th>姓名</th> <th>年龄</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>25</td> </tr> <tr> <td>李四</td> <td>30</td> </tr> </tbody></table>表格的合并:
- 合并行:使用
<tr>标签的rowspan属性来合并行。 - 合并列:使用
<td>或<th>标签的colspan属性来合并列。
<!-- 合并行示例 --><tr> <td rowspan="2">合并两行</td> <td>单元格1</td></tr><tr> <td>单元格2</td></tr>
<!-- 合并列示例 --><tr> <td colspan="2">合并两列</td></tr>表单标签
HTML 表单用于收集用户输入的数据,表单标签为 <form>。
<form action="/submit" method="post"> <!-- 表单控件 --></form>表单的基本属性
| 属性 | 描述 |
|---|---|
action | 指定表单数据提交的目标 URL |
method | 指定表单数据的提交方式,get 或 post |
enctype | 指定表单数据的编码类型,通常用于文件上传 |
target | 指定在何处打开表单提交结果 |
文本输入框
用于输入单行文本。
<label for="username">用户名:</label><input type="text" id="username" name="username" placeholder="请输入用户名" required>密码输入框
用于输入密码,输入的内容会被隐藏。
<label for="password">密码:</label><input type="password" id="password" name="password" placeholder="请输入密码" required>单选按钮
用于从多个选项中选择一个。
<fieldset> <legend>性别:</legend> <label><input type="radio" name="gender" value="male" checked> 男</label> <label><input type="radio" name="gender" value="female"> 女</label></fieldset>复选框
用于从多个选项中选择多个。
<fieldset> <legend>爱好:</legend> <label><input type="checkbox" name="hobby" value="reading"> 阅读</label> <label><input type="checkbox" name="hobby" value="music"> 音乐</label> <label><input type="checkbox" name="hobby" value="sports"> 运动</label></fieldset>文本域
用于输入多行文本。
<label for="message">留言:</label><textarea id="message" name="message" rows="4" cols="50" placeholder="请输入留言"></textarea>下拉列表
用于从预定义选项中选择一个或多个。
<label for="city">城市:</label><select id="city" name="city"> <option value="beijing">北京</option> <option value="shanghai">上海</option> <option value="guangzhou">广州</option> <option value="shenzhen">深圳</option></select>多选下拉列表:
<label for="skills">技能:</label><select id="skills" name="skills" multiple> <option value="html">HTML</option> <option value="css">CSS</option> <option value="javascript">JavaScript</option> <option value="python">Python</option></select>按钮
提交按钮:用于提交表单数据。
<input type="submit" value="提交"><!-- 或者使用 button 标签 --><button type="submit">提交</button>重置按钮:用于重置表单数据。
<input type="reset" value="重置"><!-- 或者使用 button 标签 --><button type="reset">重置</button>普通按钮:用于触发 JavaScript 事件。
<input type="button" value="点击我" onclick="alert('你点击了按钮!')"><!-- 或者使用 button 标签 --><button type="button" onclick="alert('你点击了按钮!')">点击我</button>文件上传
用于上传文件。
<label for="file">上传文件:</label><input type="file" id="file" name="file">多选文件上传:
<input type="file" id="files" name="files" multiple>其他 HTML5 表单控件
数字输入框:
<label for="age">年龄:</label><input type="number" id="age" name="age" min="1" max="120" step="1" value="18">日期选择器:
<label for="birthday">出生日期:</label><input type="date" id="birthday" name="birthday">邮箱输入框:
<label for="email">邮箱:</label><input type="email" id="email" name="email" placeholder="请输入邮箱" required>URL 输入框:
<label for="website">个人网站:</label><input type="url" id="website" name="website" placeholder="请输入网站地址">搜索框:
<label for="search">搜索:</label><input type="search" id="search" name="search" placeholder="请输入搜索内容">滑块:
<label for="volume">音量:</label><input type="range" id="volume" name="volume" min="0" max="100" value="50">颜色选择器:
<label for="color">颜色:</label><input type="color" id="color" name="color" value="#ff0000">表单分组和标签关联
<fieldset> 和 <legend>:
用于将表单内容分组并提供标题。
<fieldset> <legend>个人信息</legend> <!-- 个人信息相关的表单控件 --></fieldset><label>:
用于为表单控件提供标签,提高可访问性。可以通过 for 属性与控件的 id 关联,或者将控件嵌套在 <label> 标签内。
<!-- 通过 for 属性关联 --><label for="username">用户名:</label><input type="text" id="username" name="username">
<!-- 通过嵌套关联 --><label><input type="checkbox" name="agree"> 我同意条款</label>表单的常用属性
以下是表单控件常用的属性:
| 属性 | 描述 |
|---|---|
name | 控件的名称,用于表单提交时的数据标识 |
value | 控件的值 |
placeholder | 提供输入提示 |
required | 表示该控件为必填项 |
disabled | 禁用控件 |
readonly | 设置控件为只读 |
checked | 用于单选按钮和复选框,设置默认选中 |
autofocus | 页面加载时自动获取焦点 |
表单验证
HTML5 提供了表单验证功能,可以通过设置相应的属性来实现基本的表单验证。
<form> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required>
<label for="password">密码:</label> <input type="password" id="password" name="password" required minlength="8">
<button type="submit">提交</button></form>常用的验证属性:
| 属性 | 描述 |
|---|---|
required | 表示该控件为必填项 |
minlength | 最小长度 |
maxlength | 最大长度 |
min | 最小值(用于数字、日期等) |
max | 最大值(用于数字、日期等) |
pattern | 使用正则表达式验证输入值 |
type | 通过设置类型来进行特定格式的验证(如 email、url 等) |
通过合理使用表单标签和控件,可以创建出功能完善、用户友好的表单界面,用于收集各种用户数据。
字符实体
HTML 中使用字符实体来表示特殊字符,以避免与 HTML 标签冲突。例如,要在 HTML 中显示小于号 <,需要使用实体 <。使用字符实体可以确保在 HTML 文档中正确显示特殊字符,避免解析错误。
以下是一些常用的字符实体:
| 字符 | 实体 | 说明 |
|---|---|---|
< | < | 小于号 |
> | > | 大于号 |
& | & | 和号 |
" | " | 双引号 |
' | ' | 单引号 |
| | 非断行空格 |
© | © | 版权符号 |
® | ® | 注册商标符号 |
™ | ™ | 商标符号 |
€ | € | 欧元符号 |
£ | £ | 英镑符号 |
¥ | ¥ | 日元符号 |
¥ | ¥ | 日元符号 |
¥ | &yuan; | 人民币符号 |
§ | § | 节号符号 |
... | … | 省略号 |
° | ° | 度符号 |