JyuniX a écrit :
Par exemple tu as une série de paragraphe, qui sont en langues différentes
Cette utilisation de l'élément
div comme support d'information sur la langue du contenu est une des deux utilisations-type de cet élément présentées dans la spécification HTML 4.01. Je cite:
a écrit :
les auteurs peuvent utiliser ceux-ci [DIV et SPAN] en conjonction avec les feuilles de style, l'attribut lang, etc., pour exploiter HTML selon leurs besoins et leurs goûts propres.
Vous remarquerez: gouts et besoins.
Il faudrait utiliser cette citation plus souvent, ça décomplexerait certains acharnés de la sémantique.
D'ailleurs, en parlant de sémantique (ou plutôt d'absence de...),
Benjamin D.C. a écrit :
La balise p introduit un paragraphe, elle donne un sens à l'information balisée (peu dans ce cas-ci, mais tout de même…). L'élément div n'a aucun sens, il n'est là que pour créer des "divisions" permettant de nous faciliter la tâche au niveau des styles css.
La différence entre les deux n'est pas si marquée. Il est déjà abusif de dire que
p désigne un «paragraphe», si on entend ce mot au sens littéraire du terme (la spécification du «paragraphe», mais pour ma part j'estime qu'il s'agit d'un raccourci pédagogique sans conséquences et sur lequel il ne faut surtout pas se focaliser). Si je veux placer juste un ou deux liens tout en haut à droite de ma page, est-ce que c'est un paragraphe, une division, une liste (pour le cas où il y en aurait deux, voire trois)? À vrai dire, on s'en fout royalement, et on utilisera celui que l'on préfère sans préjudice à une quelconque sémantique (pas vraiment en jeu ici).
La seule règle vraiment précise, c'est celle des imbrications possibles:
-
div peut contenir tout et n'importe quoi ou presque, ce qui en fait un bon candidat pour contenir... tout et n'importe quoi (des blocs de contenu entiers, des «paragraphes» au sens littéraire du terme, des liens qui trainent en dehors de tout «menu de navigation», etc.);
-
p ne peut contenir que des éléments de type en-ligne, c'est à dire du texte, des images, des éléments tels que
span ou
em, etc. C'est donc un mauvais candidat pour jouer les conteneurs, mais un bon candidat pour apparaitre en bout de chaine, pour structurer par exemple nos «paragraphes», «bouts de textes ou liens qui trainent», etc.
On pourrait utiliser div tout le temps sans faire injure à la sémantique. Pour ma part, dès que je suis en fin de course, j'utilise
p plutôt que
div, pour garder ce dernier comme conteneur. Mais il s'agit plus d'une question de méthodologie (ça facilite la relecture du code et la gestion des styles de texte) que d'une question de sémantique.