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?
<b>
(e,<i>
nesse caso) estão longe de ser obsoletos. Verifique a especificação do HTML5.<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.Respostas:
div
sep
sã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 usardiv
no lugar dep
.E a razão pela qual o uso
b
é desencorajado é porque é uma tag de apresentação. Não tem significado semântico. Ambosp
ediv
têm seus próprios significados semânticos.p
nunca 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.fonte
p { margin: 1em 0 }
faz toda essa pergunta discutível.<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 )<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á bemO ponto importante a lembrar é que ambas são tags válidas e usadas, mas não com o mesmo objetivo.
fonte