Balises bloc et en-line : les exceptions

Astuce par Raphael (Eleveur de kiwiz, Strasbourg)
Mis à jour le 08 Janvier 2009 à 21h53. 2722 lectures.
Tags : bloc, en-ligne, xhtml, balise

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...

1) 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

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) 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.