¿A <p> o no a <p>?

16

Recientemente tuve un debate con un colega que afirmó que una <div>etiqueta debería usarse sobre una <p>etiqueta al formatear párrafos.

El caso en contra del uso de <p>es que produce un espacio irregular entre los navegadores y es probable que se vuelva obsoleto como la <b>etiqueta.

¿Es esta opinión de la <p>etiqueta compartida por la comunidad?

BradB
fuente
55
Solo para señalar, <b>(y <i>para el caso) están lejos de ser obsoletos. Verifique la especificación HTML5.
DisgruntledGoat
Buen punto: acabo de comprobar, siempre me han indicado que <b> y <i> son etiquetas depreciadas y que <strong> y <em> deben usarse.
BradB
<strong>y <em>siempre debe usarse para enfatizar. <b>y <i>están en desuso en ese sentido, pero tienen un uso legítimo, aunque limitado, en HTML5.
DisgruntledGoat
¿Esta discusión realmente pertenece aquí? Me parece que esto debería estar en Doctype
Charles Boyung
@Charles: es un área gris en este momento, ya que el sitio aún está en pañales. Si se siente firmemente, no dude en comenzar una nueva discusión en meta.webmasters.stackexchange.com - o publique sus comentarios aquí: meta.webmasters.stackexchange.com/questions/117/…
Mark Henderson

Respuestas:

41

divsys pson para propósitos completamente diferentes. pes para párrafos, dives para divisiones seccionales. Uno es para el formato de texto, el otro es para la estructura de la página. Es semánticamente incorrecto usarlo diven lugar de p.

Y la razón por la que bse desaconseja su uso es porque es una etiqueta de presentación. No tiene significado semántico. Ambos py divtienen sus propios significados semánticos únicos. pnunca será obsoleto siempre y cuando las personas sigan formateando el texto en párrafos.

Su colega no parece estar familiarizado con el principio de separación de contenido y presentación . De lo contrario, sabría por qué bse aborrece y que los problemas de presentación como el espaciado de texto deberían definirse en CSS, no en HTML.

Lèse majesté
fuente
11
+1 de acuerdo. Solo para enfatizar ... cualquier "espacio irregular entre navegadores" (aunque eso es discutible) puede ser controlado completamente por CSS.
MrWhite
44
Sí ... p { margin: 1em 0 }hace que toda esta pregunta sea discutible.
DisgruntledGoat
77
<b>ahora tiene un significado semántico: "El elemento b representa un espacio de texto al que se llama la atención con fines utilitarios sin transmitir ninguna importancia adicional y sin implicación de una voz o estado de ánimo alternativo, como palabras clave en un resumen de documento, nombres de productos en una revisión, palabras procesables en software interactivo basado en texto o un artículo lede ". ( fuente )
David Murdoch
13

<p>y <div>no están destinados para el mismo propósito, ya que tienen un significado semántico diferente:

  • <p> es para el párrafo
  • <div>es "ofrecer un mecanismo genérico para agregar estructura a los documentos", como se indica en la especificación div HTML del W3C

<p> Es posible que no quede obsoleto en el futuro, ya que todavía está presente en XHTML y HTML 5.

Ambas etiquetas tienen una representación gráfica diferente. A <p>tiene un margen superior e inferior de 1em, mientras que a <div>no tiene margen alguno. Pero este punto es secundario ya que puede ser anulado por CSS.

Además, tenga en cuenta esta diferencia: si bien ambas etiquetas son del tipo "bloque", solo <div>pueden contener otros elementos de bloque. Así:

  • <p><p> bla </p></p> está mal, mientras
  • <div><div> bla </div></div> esta bien

El punto importante a recordar es que ambas son etiquetas válidas y usadas, pero no con el mismo propósito.

Matthieu FAURE
fuente