HTML语法完全指南

从基础到高级,全面掌握HTML的核心概念和语法规则,打造专业级网页

HTML基础结构

HTML文档由标签和元素组成,遵循特定的结构规范。了解基本结构是学习HTML的第一步。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>页面标题</title>
    <!-- 外部资源引用 -->
</head>
<body>
    <!-- 页面内容 -->
    <h1>欢迎来到我的网站</h1>
    <p>这是一个段落文本。</p>
</body>
</html>

DOCTYPE声明

<!DOCTYPE html> 声明文档类型为HTML5,位于文档的第一行。

HTML根标签

<html> 标签是HTML文档的根,所有其他标签都包含在其中。

头部与主体

<head> 包含元数据,<body> 包含可见的页面内容。

元素与标签

HTML元素由开始标签、内容和结束标签组成。了解不同类型的元素是构建网页的基础。

块级元素

块级元素独占一行,宽度默认是父元素的100%。常见的块级元素有:

  • <div> - 通用容器
  • <p> - 段落
  • <h1>~<h6> - 标题
  • <ul>, <ol>, <li> - 列表
  • <form> - 表单

内联元素

内联元素只占据所需的宽度,不会换行。常见的内联元素有:

  • <a> - 链接
  • <img> - 图片
  • <input>, <button> - 表单控件
  • <span> - 通用内联容器
  • <strong>, <em> - 文本格式化

空元素

空元素没有内容和结束标签,只需一个标签即可。常见的空元素有:

<br> - 换行
<hr> - 水平线
<img> - 图片
<input> - 输入框
<meta> - 元数据
<link> - 外部资源链接
<col> - 表格列
<wbr> - 可选换行点

HTML属性

HTML属性为元素提供额外信息,写在开始标签中,格式为 属性名="属性值"

通用属性

所有HTML元素都可以使用的属性:

id

唯一标识元素,用于CSS和JavaScript选择器

<div id="main-content"></div>
class

为元素指定一个或多个类名,用于CSS样式

<p class="text-red bold"></p>
style

内联定义元素的CSS样式

<h1 style="color:blue;"></h1>
title

提供元素的额外信息,鼠标悬停时显示

<img src="logo.png" title="公司标志">

常用元素特定属性

某些元素特有的重要属性:

src

指定图像、脚本或媒体的路径

<img src="image.jpg">
href

指定链接的目标URL

<a href="https://example.com"></a>
alt

为图像提供替代文本,用于无障碍访问

<img src="logo.png" alt="公司标志">
disabled

禁用表单元素,使其不可用

<input type="text" disabled>

属性使用技巧

  • 使用 aria-* 属性增强无障碍性,例如 aria-label
  • 为图像和链接添加 target="_blank" 时,始终加上 rel="noopener noreferrer" 防止安全风险
  • 使用 data-* 属性存储自定义数据,供JavaScript使用

文本格式化

HTML提供了多种标签用于格式化文本,包括标题、段落、强调等。

标题标签

HTML提供6个级别的标题标签,从 <h1><h6>,重要性逐级降低。

<h1> 一级标题

<h2> 二级标题

<h3> 三级标题

<h4> 四级标题

<h5> 五级标题
<h6> 六级标题

文本强调标签

HTML提供多种标签用于强调文本,每个标签有不同的语义。

<strong> - 重要文本(通常显示为粗体)

这是重要的文本

<em> - 强调文本(通常显示为斜体)

这是需要强调的文本

<mark> - 标记/高亮文本

这是被标记的文本

<small> - 次要文本

这是次要的文本

<del> - 删除文本

这是被删除的文本

<ins> - 插入文本

这是插入的文本

其他文本格式化标签

<b> - 粗体文本(无强调语义)

这是粗体文本

<i> - 斜体文本(无强调语义)

这是斜体文本

<u> - 下划线文本

这是下划线文本

<sub> - 下标文本

H2O

<sup> - 上标文本

x2 + y2 = r2

<code> - 代码文本

function add(a, b) { return a + b; }

列表

HTML提供三种列表类型:无序列表、有序列表和定义列表。

无序列表

使用 <ul> 标签,每个列表项使用 <li> 标签。

  • 项目一
  • 项目二
    • 子项目A
    • 子项目B
  • 项目三
<ul>
  <li>项目一</li>
  <li>项目二
    <ul>
      <li>子项目A</li>
      <li>子项目B</li>
    </ul>
  </li>
  <li>项目三</li>
</ul>

有序列表

使用 <ol> 标签,每个列表项使用 <li> 标签。

  1. 第一步
  2. 第二步
    1. 子步骤A
    2. 子步骤B
  3. 第三步
<ol>
  <li>第一步</li>
  <li>第二步
    <ol type="a">
      <li>子步骤A</li>
      <li>子步骤B</li>
    </ol>
  </li>
  <li>第三步</li>
</ol>

定义列表

使用 <dl> 标签,包含术语(<dt>)和定义(<dd>)。

HTML
超文本标记语言
CSS
层叠样式表
JavaScript
网页脚本语言
<dl>
  <dt>HTML</dt>
  <dd>超文本标记语言</dd>
  <dt>CSS</dt>
  <dd>层叠样式表</dd>
  <dt>JavaScript</dt>
  <dd>网页脚本语言</dd>
</dl>

列表使用技巧

  • 有序列表可以通过 type 属性指定编号类型:1(默认)、AaIi
  • 无序列表可以通过CSS修改项目符号样式(list-style-type
  • 列表可以嵌套使用,创建复杂的结构

表格

HTML表格用于展示结构化数据,由行和列组成。

基本表格结构

姓名 年龄 职业 城市
张三 28 工程师 北京
李四 32 设计师 上海
王五 45 产品经理 广州
<table>
  <thead>
    <tr>
      <th>姓名</th>
      <th>年龄</th>
      <th>职业</th>
      <th>城市</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>张三</td>
      <td>28</td>
      <td>工程师</td>
      <td>北京</td>
    </tr>
    <tr>
      <td>李四</td>
      <td>32</td>
      <td>设计师</td>
      <td>上海</td>
    </tr>
    <tr>
      <td>王五</td>
      <td>45</td>
      <td>产品经理</td>
      <td>广州</td>
    </tr>
  </tbody>
</table>

合并单元格

使用 colspanrowspan 属性合并单元格。

产品信息
名称 笔记本电脑
规格 15.6英寸屏幕
8GB内存,512GB SSD

表格标题与分组

使用 <caption><thead><tbody><tfoot> 标签。

2023年销售数据
季度 销售额
第一季度 ¥120,000
第二季度 ¥150,000
总计 ¥270,000

表格使用技巧

  • 使用 <thead><tbody><tfoot> 标签组织表格结构
  • 为表格添加 <caption> 标签,提高表格的可访问性
  • 使用 border-collapse: collapse; CSS属性合并相邻的边框
  • 对于复杂表格,考虑使用 <colgroup><col> 标签定义列属性

表单

HTML表单用于用户输入,是网站与用户交互的重要方式。

基本表单结构

<form>
  <div>
    <label for="name">姓名</label>
    <input type="text" id="name">
  </div>
  
  <div>
    <label for="email">邮箱</label>
    <input type="email" id="email">
  </div>
  
  <div>
    <label for="message">留言</label>
    <textarea id="message" rows="3"></textarea>
  </div>
  
  <div>
    <label>兴趣</label>
    <label>
      <input type="checkbox"> 阅读
    </label>
    <label>
      <input type="checkbox"> 旅行
    </label>
    <label>
      <input type="checkbox"> 摄影
    </label>
  </div>
  
  <div>
    <label>性别</label>
    <label>
      <input type="radio" name="gender"> 男
    </label>
    <label>
      <input type="radio" name="gender"> 女
    </label>
    <label>
      <input type="radio" name="gender"> 其他
    </label>
  </div>
  
  <div>
    <label for="country">国家</label>
    <select id="country">
      <option>中国</option>
      <option>美国</option>
      <option>英国</option>
      <option>其他</option>
    </select>
  </div>
  
  <button type="submit">提交</button>
</form>

表单输入类型

HTML提供多种输入类型,满足不同的输入需求。

text - 单行文本输入
password - 密码输入(隐藏显示)
number - 数字输入
date - 日期选择器
email - 邮箱输入(有格式验证)

表单验证属性

使用HTML5的验证属性,可以在客户端进行基本的表单验证。

required - 必填字段
minlength/maxlength - 最小/最大长度
min/max - 数字范围
pattern - 正则表达式验证

表单最佳实践

  • 使用 <label> 标签关联输入控件,提高可访问性
  • 使用HTML5验证属性进行基本验证,但不要依赖它们替代服务器端验证
  • 为表单元素添加 name 属性,以便服务器接收数据
  • 使用 <fieldset><legend> 标签组织相关表单元素