On le sait, il existe deux grands groupes de structures pour les balises HTML : les balises bloc et les balises 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 balises en-ligne ne peuvent contenir que d'autres balises en-ligne.
Cette règle générale est sujette à quelques exceptions pas toujours très connues...
Eléments 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
- FIELDSET
- Doit contenir en premier l'élément LEGEND.
The content of a FIELDSET element must begin with a LEGEND to provide a caption for the group of controls. Following the LEGEND, FIELDSET may contain any inline or block-level element, including another FIELDSET.
Source WebDesignGroup.
- 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.
- 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.
Eléments En-ligne
- 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.