HTML元素

HTML中，一个HTML元素是HTML文件的一个基本组成单元。HTML文件采用采用树形结构安排HTML元素。更进一步的说，一个HTML元素是一个满足一项或多项DTD要求的元素。HTML元素可以拥有"属性"和"内容"，可以是标题、段落、链接、列表、嵌入媒体或者其他的任何符合DTD要求的格式。
概述.
语法.
在HTML语法中，大多数元素编写一个开始标记和结束标记，与其之间的内容。HTML标记是由元素名称，包围于两侧之小于号与大于号之括号所组成。其结束标记拥有一斜线位在小于号之括号后，有别于其起始标记。例如：一个段落是由codice_1元素所代表，其被写成
<syntaxhighlight lang="html5">
在HTML语法中，大多数元素编写...
</syntaxhighlight>
然而，并非所有的此类元素"需要"结束标记，甚至是开始标记必须存在。某些元素，即所谓的"void空元素"，并无结束标记。典型的例子即codice_2元素，其表示一个显著之换行，像是一首诗或一个住址。一个空元素的行为是预先定义的，并且它不能包含任何内容或其他元素。例如：在电影"海底总动员"中的牙医师的地址将被写成
<syntaxhighlight lang="html5">
P. Sherman<br>42 Wallaby Way<br>Sydney
</syntaxhighlight>
HTML元素可以是"容器"或者为"空"。
容器元素 结构如下：
空元素指仅包含一个标记，该标记既是开始标记同时也是结束标记。空元素可以有任意数量的属性codice_5。在XHTML规范中，标记中的斜线符号是"必须"的。要求使用一个单独标签开启与关闭元素。若要指定其为一个空元素，符号"/"包含于标记之结尾（不能与位于结束标记中的开始的符号"/"混淆）。例如：
<syntaxhighlight lang="html5">
P. Sherman42 Wallaby WaySydney
</syntaxhighlight>
英语中有时HTML元素也被称为“tags”，严格的说"tag"是指元素的开始或者结束标记。
用来指示元素的附加的性质。放在开始标记中。例如：codice_6元素，其表示缩写，预计一个codice_7属性包含其开始标记。将被写成
<syntaxhighlight lang="html5">
<abbr title="abbreviation">abbr.</abbr>
</syntaxhighlight>
在HTML中，元素（和属性）名字可以是大写或者小写，但在XHTML中，必须是小写。大写是旧的用法，并且是HTML规范中说明的方法，但是小写更为通用。
相关标准.
HTML元素是在自1995年以来发布的一系列免费开放标准中定义的，最初由IETF以及随后由W3C制订。
1990年代的浏览器大战期间，网页浏览器的软件商开始不断的添加自定义的元素，有些被后来的标准吸收。并非所有的软件商都支持这些非标准的元素，一般对于非标准的元素，或者是忽略，或者是导致显示不正确。
1998年，XML（一种简化的SGML）引入一种方法，允许任何人开发自己的元素并融合到XHTML文件中，使用支持XML的浏览器（用户代理）可以浏览任意元素。
而后采用XML兼容的办法，重新制订了HTML 4.01标准，XHTML 1.0（"扩展的HTML"）。二者的元素相同，绝大多数情况下，XHTML 1.0文件的元素在HTML 4.0文件中是合法的。本文除非另外指出，应用的都是基于SGML的HTML，对于XHTML多数情况下仍然适用"（二者区别见HTML）"。
当前的状态.
自从HTML第一版以来，已经有数个元素因为过期，不再新的标准中推荐使用或者干脆删除。
目前由于并存三种HTML 4.01／XHTML 1.0 DTD标准，而使得HTML的验证变得复杂起来，这三种标准分别是：
HTML第一个标准（HTML 2.0）包含四个过期的元素。其中一个在HTML 3.2中被列为无效。所有的四个在HTML 4.01 Transitional中都被列为无效，HTML4.01 Transitional标准此外还将另外十个元素定义为无效。以上这些元素再加两个在HTML 4.01 Strict中同样被定义为无效。由于frame元素在显示方面的诸多问题以及其功能已经可以由其他元素替代，在未来的标准中不再保留，虽然目前在Transitional和Frameset DTD中仍然有效。
（严格的说，目前的"XHTML"标准XHTML 1.1（2001）根本不支持frame。基本上与XHTML 1.0 Strict相同，但是又包含了Ruby markup模块。）
一个经常导致错误理解的原因是不严格的使用"deprecated"（过期）一词来泛指过期的和无效的，以及今后一段时间过期的不同的状态。
展示和行为.
根据分离原则，HTML的功能在于给一个文件的内容增加语义和结构的信息。增加文件的展示和行为的功能，例如增加CSS stylesheets和图形来增加文件的展示功能；通过链接到外部文件和脚本增加与用户交互的行为。User agent也可以根据作者所提供的stylesheet在不同的介质（显示器，打印机）上展示不同效果。同时保持语义上的一致。
文件头元素.
framename，规定页面中所有的超链接和表单在何处打开；该属性会被每个具体链接中的target 属性覆盖。
Meta element
之其他未提供的资讯。因其共通性，codice_18元素指定关联的key-value pairs。一般情况之下，meta元素传达关于文件之隐藏资讯。若干meta标签可被使用，上述之全部应被嵌套在head元素中。每个" meta"元素之特定目的是由其属性来定义。
文件内容元素.
在视觉化浏览器中，可显示元素可呈现为"区块"或"内行"。虽然所有元素是文件序列之一部分，但是区块元素 出现在其父元素中：
反言之，内行元素被视为文件文字流之部分；其无法拥有边距、宽度或高度设定，并且跨行。
区块元素.
区块元素（或称区块层级元素）拥有矩形结构。在预设情况下，这些元素将占据父元素的整个宽度，因而不允许任何其他元素占据已被其所占的同一水平空间。
区块元素的矩形结构经常称之为盒模型，并由几个部分所组成。每个元素包含以下内容：
上述部分仅指CSS渲染的具体实施，并与HTML元素本身无关。
行内元素.
行内元素无法直接放置在codice_77元素中；其必须完全嵌套于区块及元素中。
短语元素.
计算机术语元素.
这些与元素主要用于方便显示计算机软件编码和与使用者交互（codice_88
视觉效果.
视觉效果的元素仅仅对可视浏览器起作用，因此不推荐使用，如果可能应该使用层叠样式表。部分元素在HTML 4 / XHTML 1.0中被宣布过期或者无效的，其它的在当前的XHTML 2.0草案XHTML 2.0中被定义为无效的。当前的HTML 5草案HTML 5中，b, i和small还是有效的.
注解.
在HTML中的 注解（以及相近的XML, SGML, SHTML. ）语法与SGML相同。
不同于其它HTML标签，注解不支援巢状结构。
标签： codice_93 看起来会是这样 codice_94
注解可以出现在文件的任何地方，甚至可以在文件类型宣告之前。
（在codice_95之前。）
HTML的解释器会忽略注解，只要它们不在HTML标签内。
这里标签内的意思并非指被一对开始标签及结束标签包住的区域内，
而是指在开始标签内，或结束标签、空元素标签内。
然而并非所有浏览器、HTML编辑器都与HTML语法完全相容，在某些特殊情况会造成意料之外的结果。
约有5%的浏览器、HTML编辑器在处理注解标签上有缺陷。（其中大部份是IE6 ）
尽管只有少数版本有此问题。
一些有关注解的相容性问题：