Para <p> ou não para <p>?

16

Recentemente, tive um debate com um colega que alegou que uma <div>tag deveria ser usada sobre uma <p>tag ao formatar parágrafos.

O argumento contra o uso de <p>é que ele produz espaçamento irregular entre os navegadores e é provável que se torne obsoleto como a <b>tag.

Essa opinião da <p>tag é compartilhada pela comunidade?

BradB
fonte
5
Apenas para salientar <b>(e, <i>nesse caso) estão longe de ser obsoletos. Verifique a especificação do HTML5.
usar o seguinte
Bom ponto - acabei de verificar, sempre fui instruído que <b> e <i> são tags depreciadas e <strong> e <em> devem ser usados.
BradB
<strong>e <em>sempre deve ser usado para dar ênfase. <b>e <i>são preteridos nesse sentido, mas eles têm uso legítimo, embora limitado, no HTML5.
usar o seguinte
Essa discussão realmente pertence aqui? Parece-me que este deve estar em Doctype
Charles Boyung
@ Charles - é uma área cinzenta no momento, pois o site ainda está engatinhando. Se você se sentir fortemente, sinta-se à vontade para iniciar uma nova discussão em meta.webmasters.stackexchange.com - ou postar seus comentários aqui: meta.webmasters.stackexchange.com/questions/117/…
Mark Henderson

Respostas:

41

divse psão para propósitos completamente diferentes. pé para parágrafos, divé para divisões seccionais. Um é para formatação de texto, o outro é para a estrutura da página. É semanticamente incorreto usar divno lugar de p.

E a razão pela qual o uso bé desencorajado é porque é uma tag de apresentação. Não tem significado semântico. Ambos pe divtêm seus próprios significados semânticos. pnunca será obsoleto desde que as pessoas ainda formatem o texto em parágrafos.

Seu colega não parece familiarizado com o princípio da separação de conteúdo e apresentação . Caso contrário, ele saberia por que bé detestável e que problemas de apresentação, como espaçamento de texto, devem ser definidos em CSS, não no HTML.

Lèse majesté
fonte
11
+1 Concordo. Apenas para enfatizar ... qualquer "espaçamento irregular entre navegadores" (embora isso seja discutível) pode ser controlado inteiramente por CSS.
MrWhite 25/10/10
4
Sim ... p { margin: 1em 0 }faz toda essa pergunta discutível.
usar o seguinte
7
<b>agora tem um significado semântico: "O elemento b representa um espaço de texto para o qual a atenção está sendo chamada para fins utilitários sem transmitir nenhuma importância extra e sem implicar uma voz ou humor alternativo, como palavras-chave em um resumo de documento, nomes de produtos em uma revisão, palavras acionáveis ​​em software orientado a texto interativo ou um lede de artigo ". ( fonte )
David Murdoch
13

<p>e <div>não se destinam ao mesmo objetivo, pois têm um significado semântico diferente:

  • <p> é para parágrafo
  • <div>é "oferecer um mecanismo genérico para adicionar estrutura aos documentos", conforme declarado na especificação HTML div do W3C

<p> pode não ser preterido no futuro, pois ainda está presente no XHTML e no HTML 5.

Ambas as tags têm renderização gráfica diferente. A <p>tem uma margem superior e inferior de 1em, enquanto a <div>não possui margem alguma. Mas esse ponto é secundário, pois pode ser substituído pelo CSS.

Observe também esta diferença: enquanto as duas tags são do tipo "block", somente <div>podem conter outros elementos do bloco. Portanto:

  • <p><p> bla </p></p> está errado, enquanto
  • <div><div> bla </div></div> está bem

O ponto importante a lembrar é que ambas são tags válidas e usadas, mas não com o mesmo objetivo.

Matthieu FAURE
fonte