Einteilung von HTML-Elementen in Kategorien
Vor HTML5 wurden zwei Kategorien von HTML-Elementen unterschieden.
Block-Elemente
Block-Elemente (block-level elements) definieren, wie die Bezeichnung schon andeutet, einen (Text-) Block, der von einem Zeilenumbruch geöffnet und von einem Zeilenumbruch geschlossen wird.
Block-Elemente müssen innerhalb von <body> </body> stehen. Block-Elemente dürfen zum Teil auch verschachtelt werden. Allerdings nicht alle. Beispielsweise führt eine Verschachtelung von <p> Elementen beim Validieren von HTML-Dokumenten zu Fehlern.
Inline-Elemente
Inline-Elemente stehen innerhalb von Block-Elementen und erzeugen keine Textumbrüche am Anfang und Ende des Elements.
Auch Inline-Elemente können ineinander verschachtelt werden. Das erste Inline-Element der Verschachtelung muss jedoch ein Nachfahre eines Block-Elements sein.
Element-Kategorien in HTML5
Die strenge Unterscheidung zwischen Block- und Inline-Elementen wird bei HTML5 aufgehoben. Hier stehen mehrere Grund-Kategorien zur Verfügung.
Block-Elemente entsprechen in HTML5 am ehesten den Fluss-Elementen.
Inline-Elemente entsprechen in HTML5 am weitgehend den Stil-Elementen.
Weitere Element-Kategorien in HTML5 sind z.B. Metadaten, Elemente zur Einbindung von Ressourcen oder interaktive Elemente. Einige der Element-Kategorien in HTML5 überschneiden sich auch. Die Kategorien der Elemente von HTML5 wird vom W3C hier genauer beschrieben.
Inline- und Block-Elemente spielen jedoch beim Validieren von HTML-Dokumenten immer noch eine Rolle.