Bon alors prenons les choses par un autre bout, pour montrer le rôle des entités
inline et
block:
1. Par exemple, on entend parfois regretter que l'élément P ait un contenu de type
inline plutôt que
block, et que l'on ne puisse donc pas écrire par exemple:
<p>
Le format HTML4.01 se décline en:
<ul>
<li>transitional</li>
<li>strict</li>
<li>frameset</li>
</ul>
</p>
Ce qui, à première vue, paraît pourtant très satisfaisant en mariant la liste et l'unité de sens du paragraphe.
Alors, pourquoi n'est-ce pas possible en HTML4.01 ? Parce que, dans cet exemple, on obtient un
bloc de texte anonyme ("Le format HTML4.01 se décline en:"), c'est à dire non déterminé par un élément HTML spécifique. Ce que l'on cherche justement à éviter autant que possible en structurant le document (l'impossibilité d'écrire certains blocs anonymes est d'ailleurs une des différences majeures entre les versions
strict et
transitional du (X)HTML).
D'autre part, en donnant à P le type de contenu
block, on autoriserait également diverses structures aberrantes, du type <p><h1></h1></p>, ou <p>...<noscript générant un <p></p>...</p>, etc.
Donc P doit être un élément ayant un contenu de type
inline.
2. Pour continuer l'exemple, pourquoi P est-il lui-même un élément de type
block et non
inline ?
Parce que sinon, on pourrait produire par exemple:
<h1>
HTML4.01:
<p>le langage de balisage hypertexte</p>
</h1>
Ce qui produit à nouveau un bloc de contenu anonyme, et qui pourrait aboutir également à d'autres structures aberrantes.
Donc, P est lui-même un élément de type
block.
Voilà voilà... Il n'y a rien de bien profond dans le
why Modifié par Laurent Denis (23 Jan 2007 - 07:56)