Éléments de niveau bloc et élements en-ligne : les exceptions

Astuce par (Eleveur de kiwiz, Strasbourg)
Mis à jour le . 19099 lectures.
Tags : bloc, en-ligne, xhtml, balise

Il existe deux grands groupes de structures pour les éléments HTML version 4.x et XHTML 1.x : les éléments de niveau bloc et les éléments en-ligne.

En règle générale, un bloc peut contenir des éléments en-ligne mais aussi d'autres blocs. De leur côté, les éléments en-ligne ne peuvent contenir que d'autres balises en-ligne.

Cette règle générale est sujette à quelques exceptions pas toujours bien connues...

1) Éléments de niveau bloc

ADDRESS

En HTML (et XHTML) Strict, la balise ADDRESS ne peut contenir que des éléments en-ligne. En transitionnel, elle peut contenir également la balise P. Parents possibles pour cette balise : BLOCKQUOTE, BODY, BUTTON, DD, DEL, DIV, FIELDSET, FORM, INS, LI, MAP, NOSCRIPT, OBJECT, TD, TH

BODY

Ne peut pas être parent direct de caractères ou d'éléments de type En-ligne.

BLOCKQUOTE

En HTML (et XHTML) Strict, la balise BLOCKQUOTE ne peut être parente que d'éléments de type Bloc. En transitionnel, elle peut également être parente d'éléments de type En-ligne.

DL

Ne peut être parent direct que des éléments DT et/ou DD

DT

Ne peut pas contenir d'éléments blocs

FIELDSET

Doit contenir en premier l'élément LEGEND.

FORM

Ne peut être parent direct que d'éléments blocs. Ne peut pas contenir d'autres éléments FORM

H1, H2,... H6

Ne peut être parent que d'éléments en-ligne.

HR

Ne peut pas contenir d'éléments.

NOSCRIPT

Ne peut contenir directement que des éléments de type bloc.

OL et UL

Ne peut contenir directement que des éléments de liste LI.

P

Ne peut être parent que d'éléments en-ligne.

PRE

Ne peut être parent que d'éléments en-ligne, sauf IMG, OBJECT, APPLET, SUB, SUP.

TABLE

Peut être parent direct des balises suivantes : TR, CAPTION, THEAD, TFOOT, TBODY, COL, COLGROUP.

2) Éléments en-ligne (inline)

A

Ne peut pas contenir d'autres éléments A.

BR

Ne peut pas contenir d'éléments.

IMG

Ne peut pas contenir d'éléments. Ne peut pas être contenu dans un élément PRE.

INPUT

Ne peut pas contenir d'éléments. Ne peut pas être contenu dans un élément BUTTON.

LABEL

Ne peut pas contenir d'autres éléments LABEL. Ne peut pas être contenu dans un élément BUTTON.

SELECT

Peut être parent direct des éléments OPTGROUP ou OPTION . Ne peut pas être contenu dans un élément BUTTON.

TEXTAREA

Ne peut contenir que du texte simple et des entités. Ne peut pas être contenu dans un élément BUTTON.