根元素
<html>代表 HTML 或 XHTML 文档的根。其他所有元素必须是这个元素的子节点。
文档元数据
<head>代表关于文档元数据的一个集合,包括脚本或样式表的链接或内容。
<title>定义文档的标题,将显示在浏览器的标题栏或标签页上。该元素只能包含文本,包含的标签不会被解释。
<base>定义页面上相对 URL 的基准 URL。
<link>用于链接外部的 CSS 到该文档。
<meta>定义其他 HTML 元素无法描述的元数据。
<style>用于内联 CSS。
脚本
<script>定义一个内联脚本或链接到外部脚本。脚本语言是 JavaScript。
<noscript>定义当浏览器不支持脚本时显示的替代文字。
<template>通过 JavaScript 在运行时实例化内容的容器。
章节
<body>代表 HTML 文档的内容。在文档中只能有一个 元素。
<section>定义文档中的一个章节。
<nav>定义只包含导航链接的章节。
<article>定义可以独立于内容其余部分的完整独立内容块。
<aside>定义和页面内容关联度较低的内容——如果被删除,剩下的内容仍然很合理。
<h1>,<h2>,<h3>,<h4>,<h5>,<h6>标题元素实现了六层文档标题,
是最大的标题,
是最小的标题。标题元素简要地描述章节的主题。
<header>定义页面或章节的头部。它经常包含 logo、页面标题和导航性的目录。
<footer>定义页面或章节的尾部。它经常包含版权信息、法律信息链接和反馈建议用的地址。
<address>定义包含联系信息的一个章节。
<main>定义文档中主要或重要的内容。
组织内容
<p>定义一个段落。
<hr>代表章节、文章或其他长内容中段落之间的分隔符。
<pre>代表其内容已经预先排版过,格式应当保留 。
<blockquote>代表引用自其他来源的内容。
<ol>定义一个有序列表。
<ul>定义一个无序列表。
<li>定义列表中的一个列表项。
<dl>定义一个定义列表(一系列术语和其定义)。
<dt>代表一个由下一个 定义的术语。
<dd>代表出现在它之前术语的定义。
<figure>代表一个和文档有关的图例。
<figcaption>代表一个图例的说明。
<div>代表一个通用的容器,没有特殊含义。
文字形式
<a>代表一个链接到其他资源的超链接。
<em>代表强调文字。
<strong>代表特别重要文字。
<small>代表注释,如免责声明、版权声明等,对理解文档不重要。
<s>代表不准确或不相关的内容。
<cite>代表作品标题。
<q>代表内联的引用。
<dfn>代表一个术语包含在其最近祖先内容中的定义。
<abbr>代表省略或缩写,其完整内容在 title 属性中。
<data>关联一个内容的机器可读的等价形式(该元素只在 WHATWG 版本的 HTML 标准中,不在 W3C 版本的 HTML5 标准中)。
<time>代表日期和时间值;机器可读的等价形式通过 datetime 属性指定。
<code>代表计算机代码。
<var>代表代码中的变量。
<samp>代表程序或电脑的输出。
<kbd>代表用户输入,一般从键盘输出,但也可以代表其他输入,如语音输入。
<i>代表一段不同性质的文字,如技术术语、外文短语等。
<b>代表一段需要被关注的文字。
<u>代表一段需要下划线呈现的文本注释,如标记出拼写错误的文字等。
<mark>代表一段需要被高亮的引用文字。
<ruby>代表被ruby 注释标记的文本,如中文汉字和它的拼音。
<rt>代表ruby 注释,如中文拼音。
<rp>代表 ruby 注释两边的额外插入文本,用于在不支持 ruby 注释显示的浏览器中提供友好的注释显示。
<bdi>代表需要脱离父元素文本方向的一段文本。它允许嵌入一段不同或未知文本方向格式的文本。
<bdo>指定子元素的文本方向,显式地覆盖默认的文本方向。
<span>代表一段没有特殊含义的文本,当其他语义元素都不适合文本时候可以使用该元素。
<br>代表换行。
<wbr>代表建议换行 (Word Break Opportunity),当文本太长需要换行时将会在此处添加换行符。
编辑
<ins>定义增加到文档的内容。
<del>定义从文档移除的内容。
嵌入内容
<img>代表一张图片。
<iframe>代表一个内联的框架。
<embed>代表一个嵌入的外部资源,如应用程序或交互内容。
<object>代表一个外部资源,如图片、HTML 子文档、插件等。
<param>代表 元素所指定的插件的参数。
<video>代表一段视频及其视频文件和字幕,并提供了播放视频的用户界面。
<audio>代表一段声音,或音频流。
<source>为 或 这类媒体元素指定媒体源。
<track>为 或 这类媒体元素指定文本轨道(字幕)。
<canvas>代表位图区域,可以通过脚本在它上面实时呈现图形,如图表、游戏绘图等。
<map>与 元素共同定义图像映射区域。
<area>与 元素共同定义图像映射区域。
<svg>定义一个嵌入式矢量图。
<math>定义一段数学公式。
表格
<table>定义多维数据。
<caption>代表表格的标题。
<colgroup>代表表格中一组单列或多列。
<col>代表表格中的列。
<tbody>代表表格中一块具体数据(表格主体)。
<thead>代表表格中一块列标签(表头)。
<tfoot>代表表格中一块列摘要(表尾)。
<tr>代表表格中的行。
<td>代表表格中的单元格。
<th>代表表格中的头部单元格。
表单
<form>代表一个表单,由控件组成。
<fieldset>代表控件组。
<legend>代表 控件组的标题。
<label>代表表单控件的标题。
<input>代表允许用户编辑数据的数据区(文本框、单选框、复选框等)。
<button>代表按钮。
<select>代表下拉框。
<datalist>代表提供给其他控件的一组预定义选项。
<optgroup>代表一个选项分组。
<option>代表一个 元素或 元素中的一个选项
<textarea>代表多行文本框。
<keygen>代表一个密钥对生成器控件。
<output>代表计算值。
<progress>代表进度条。
<meter>代表滑动条。
交互元素
<details>代表一个用户可以(点击)获取额外信息或控件的小部件。
<summary>代表 元素的综述或标题。
<menuitem>代表一个用户可以点击的菜单项。
<menu>代表菜单。
空标签
没有闭合的标签称为空标签,如:<br />和<img />等。他们不存在成对的情况(<colgroup>除外)反之具有成对性质的例如:<div></div>、<form></form>就不是空标签。
在HTML中,在空标签上使用闭标签是无效的,例如:</br>。这样的情况是无效的HTML。
常见的空标签
<input /> 用于为基于Web的表单创建交互式控件,以便接受来自用户的数据。
<img /> 代表文档中的一个图像。
<isindex /> 使浏览器显示一个对话框,提示用户输入单行文本。
<area /> 在图片上定义一个热点区域 <base /> 指定用于一个文档中包含的所有相对URL的基 本URL。
<basefont /> 用来设置文档的默认字体大小。(目前已废弃 )
<bgsound /> IE浏览器中设置网页背景音乐的元素。
<col /> 定义表格中的列,并用于定义所有公共单元格上的公共语义。它通常‘<colgroup>`元素内。
<embed /> 用于表示一个外部应用或交互式内容的集合点,换句话说,就是一个插件。 <frame /> ,它定义了一个特定区域,另一个 HTML 文档可以在里面展示。(已废弃)
<keygen /> 为了方便生成密钥材料和提交作为 [HTML form]的一部分的公钥.这种机制被用于设计基于 Web 的证书管理系统。(已废弃)
<link /> 指定了外部资源与当前文档的关系. 这个元素的使用方法包括为导航定义关系框架.这个元素经常用来链接css文件。
<meta /> 元素表示那些不能由其它HTML元相关元素 (<base>, <link>, <script>, <style> 或 <title>) 之一表示的任何元数据信息.
<nextid /> 是一个过时的 HTML 元素, 它使下一个 web 设计工具能够为其定位点生成自动名称标签。 它是由该 web 编辑工具自动生成的, 不需要手动调整或输入。这个元素的区别是成为第一个元素, 成为一个 "丢失的标签" 被淘汰的官方公共 DTD 的 HTML 版本。
<param /> 定义了 <object>的参数 <plaintext /> 将起始标签后面的任何东西渲染为纯文本,不会解释为 HTML。它没有闭合标签,因为任何后面的东西都会看做纯文本。(已废弃) <spacer /> 它可以向页面插入间隔。它由 Netscape 设计,用于实现单像素布局图像的相同效果,Web 设计师用它来向页面添加空白,而不需要实际使用图片。(已废弃)
<wbr /> 一个文本中的位置,其中浏览器可以选择来换行,虽然它的换行规则可能不会在这里换行。
可替换标签
CSS 里,可替换元素(replaced element)的展现不是由CSS来控制的。这些元素是一类 外观渲染独立于CSS的 外部对象。 典型的可替换元素有<img>、<object>、<video>和 表单元素,如<textarea>、<input>。 某些元素只在一些特殊情况下表现为可替换元素,例如<audio>和<canvas>。 通过 CSScontent属性来插入的对象 被称作匿名可替换元素(anonymous replaced elements)。
CSS在某些情况下会对可替换元素做特殊处理,比如计算外边距和一些auto值。
需要注意的是,一部分(并非全部)可替换元素,本身具有尺寸和基线(baseline),会被像vertical-align之类的一些 CSS 属性用到。