Pour <p> ou pas pour <p>?

16

J'ai récemment eu un débat avec un collègue qui a affirmé qu'une <div>balise devrait être utilisée sur une <p>balise lors du formatage des paragraphes.

L'argument contre l'utilisation de <p>est qu'il produit un espacement irrégulier entre les navigateurs et qu'il est susceptible de devenir obsolète comme la <b>balise.

Cette opinion du <p>tag est-elle partagée par la communauté?

BradB
la source
5
Juste pour souligner, <b>(et <i>d'ailleurs) sont loin d'être obsolètes. Vérifiez la spécification HTML5.
DisgruntledGoat
Bon point - je viens de vérifier, on m'a toujours dit que <b> et <i> sont des balises dépréciées et que <strong> et <em> doivent être utilisés.
BradB
<strong>et <em>doit toujours être utilisé pour mettre l'accent. <b>et <i>sont déconseillés à cet égard, mais ils ont une utilisation légitime, bien que limitée, en HTML5.
DisgruntledGoat
Cette discussion appartient-elle vraiment ici? Il me semble que cela devrait être sur Doctype
Charles Boyung
@Charles - c'est une zone grise pour le moment, car le site est encore à ses balbutiements. Si vous vous sentez fortement, n'hésitez pas à lancer une nouvelle discussion sur meta.webmasters.stackexchange.com - ou postez vos commentaires ici: meta.webmasters.stackexchange.com/questions/117/…
Mark Henderson du

Réponses:

41

divs et ps sont à des fins complètement différentes. pest pour les paragraphes, divest pour les divisions en sections. L'une concerne la mise en forme du texte, l'autre la structure de la page. Il est sémantiquement incorrect d'utiliser divà la place de p.

Et la raison pour laquelle l'utilisation de best découragée est qu'il s'agit d'une balise de présentation. Il n'a pas de sens sémantique. Les deux pet divont leurs propres significations sémantiques uniques. pne sera jamais obsolète tant que les gens formateront toujours le texte en paragraphes.

Votre collègue ne semble pas connaître le principe de séparation du contenu et de la présentation . Sinon, il saurait pourquoi best abhorré et que les problèmes de présentation comme l'espacement du texte doivent être définis en CSS, pas en HTML.

Lèse majesté
la source
11
+1 D'accord. Juste pour souligner ... tout "espacement irrégulier entre les navigateurs" (bien que cela soit discutable) peut être entièrement contrôlé par CSS.
MrWhite
4
Oui ... p { margin: 1em 0 }rend toute cette question théorique.
Chèvre mécontente
7
<b>a maintenant une signification sémantique: "L'élément b représente une étendue de texte sur laquelle l'attention est attirée à des fins utilitaires sans transmettre aucune importance supplémentaire et sans implication d'une voix ou d'une humeur alternative, comme les mots clés dans un résumé de document, les noms de produits dans une revue, des mots exploitables dans un logiciel interactif basé sur du texte ou une rubrique d'article. ( source )
David Murdoch
13

<p>et <div>ne sont pas destinés au même but, car ils ont une signification sémantique différente:

  • <p> est pour le paragraphe,
  • <div>est de "proposer un mécanisme générique pour ajouter une structure aux documents", comme indiqué dans la spécification HTML div du W3C

<p> ne sera peut-être plus obsolète à l'avenir car il est toujours présent dans XHTML et HTML 5.

Les deux balises ont un rendu graphique différent. UNE<p> a une marge supérieure et inférieure de 1em, tandis que <div>a n'a aucune marge du tout. Mais ce point est secondaire car il peut être remplacé par CSS.

Notez également cette différence: alors que les deux balises sont de type "bloc", seules <div> peuvent contenir d'autres éléments de bloc. Donc:

  • <p><p> bla </p></p> est faux, alors
  • <div><div> bla </div></div> est ok

Le point important à retenir est que les deux balises sont valides et utilisées, mais pas dans le même but.

Matthieu FAURE
la source