Los elementos del HTML están definidos en la norma HTML living standard, del WHATWG. Esta norma se puede consultar en la web en su versión paginada o en su versión de una sola página.
A cada elemento corresponde una etiqueta (también llamadas marcas), por lo que estos tres términos (elementos, etiqueta y marca) son intercambiables.
En la norma, las diferentes etiquetas están agrupadas en las siguientes categorías:
El elemento raíz de una página web es el elemento <html>, que abarca todo el documento excepto la declaración de tipo de documento inicial.
El elemento raíz contiene dos elementos: <head> (la parte no visible de la página) y <body> (la parte visible).
El elemento raíz <html> se comenta en la lección Raíz y metadatos.
Los metadatos son información de carácter general que no se muestra en la ventana del navegador. Las etiquetas de metadatos son: <head>, <title>, <base>, <link>, <meta> y <style>.
Los metadatos se encuentran dentro de la sección <head>.
Los metadatos se comentan en la lección Raíz y metadatos.
Las secciones son las partes temáticas en las que se puede dividir el contenido de una página web.
La sección más importante es <body> que abarca todo el contenido de la página web que se visualiza en el navegador. Los otros tipos de secciones son <body>, <article>, <section>, <nav>, <aside>, <h1> ...<h6>, <hgroup>, <header>, <footer> y <address>.
Las secciones se comentan en la lección Secciones.
Las etiquetas de bloque permiten definir bloques de contenido coherente, formado por texto e imágenes. Visualmente, cada bloque se suele mostrar separado del resto de bloques.
El bloque de contenido más simple es el párrafo (etiqueta <p>), pero existen otros tipos como <hr>, <pre>, <blockquote>, <figure>, <figcaption>, <div> y <main>, además de los diferentes tipos de lista <ol>, <ul> y <dl> (y sus componentes <li>, <dt> y <dd>).
Los bloques de contenido se comentan en las lecciones Bloques de contenido y Listas.
Las etiquetas de texto en línea son las más numerosas y se emplean para identificar fragmentos de texto que tienen un significado especial. Normalmente, los elementos de texto en línea se encuentran dentro de elementos de bloque, modificaciones o tablas.
Las etiquetas de texto en línea más habituales son <br>, <span>, <em> y <strong>, así como la etiqueta de enlace <a>.
Otras etiquetas que se utilizan menos son <small>, <s>, <cite>, <q>, <dfn>, <abbr>, <time>, <kbd>, <sub>, <sup>, <i>, <b> y <mark>.
Las etiquetas de texto en línea utilizadas más raramente son <data>, <code>, <var>, <samp>, <u>, <ruby>, <rb>, <rt>, <rtc>, <rp>, <bdi>, <bdo> y <wbr>.
Los elementos de texto en línea se comentan en las lecciones Texto en línea y Otros.
Esta categoría incluye únicamente dos etiquetas, <del> y <ins>, pensadas para identificar las modificaciones que se han realizado en un texto.
Las modificaciones se comentan en la lección Modificaciones.
Una página web es un documento de texto, pero puede contener elementos "incrustados" como imágenes, vídeo, audio, etc.
La principal etiqueta es la etiqueta <img>, que permite incluir imágenes, pero existen etiquetas para otros tipos de formatos: <picture>, <source>, <iframe>, <embed>, <object>, <param>, <video>, <audio>, <track>, <map> y <area>.
Los contenidos incrustados se comentan en las lecciones Imágenes y Objetos.
Una página web puede mostrar información en formato de tabla, con filas y columnas.
Las etiquetas que permiten definir las tablas son: <table>, <td>, <th> <tr> <thead>, <tbody> <tfoot>, <caption>, <col> y <colspan>.
Las tablas se comentan en la lección Tablas.
Una página web puede contener formularios, que permiten al usuario proporcionar información. Normalmente dicha información se envía a un servidor para ser procesada por un programa, aunque también puede ser procesada en el navegador mediante un programa escrito en el lenguaje JavaScript.
Las etiquetas relacionadas con formularios son: <form>, <fieldset>, <label>, <input>, <button>, <textarea> y <select>.
Los formularios se comentan en la lección Formularios.
Los elementos HTML son normalmente elementos fijos y su posible interactividad se consigue mediante JavaScript, pero existen un par de elementos que permiten cierta interactividad (muy limitada) sin necesidad de JavaScript: <details>, <summary> y <dialog>.
Los elementos interactivos se comentan en la lección Interactivos.
Los navegadores son capaces de ejecutar programas escritos en el lenguaje de programación JavaScript. Estos programas se suelen denominar scripts. Varias etiquetas permiten integrar estos programas en una página web: <script>, <noscript>, <template>, <slot> y <canvas>.
Los elementos de script no se comentan en estos apuntes.