HTML è stato originariamente creato per mettere il contenuto dei documenti in una sorta di struttura comprensibile ai computer. Con questo in mente, il tag p
dovrebbe contenere tutto ciò che sarebbe strutturato come un paragrafo se il contenuto della pagina dovesse essere trasformato in un documento stampato. Gli elementi div
e span
sono riservati come contenitori di uso generale per facilitare la formazione e il raggruppamento di elementi correlati per fornire livelli aggiuntivi di struttura, eventualmente correlati alle pagine di un documento di testo.
In alcuni casi, p
tag dovrebbe contenere altri elementi, come ad esempio l'ancora (a
), immagine (img
) e di altri elementi in linea, in quanto si riferiscono direttamente al contenuto del resto del paragrafo e ha senso raggrupparli in questo modo, oppure il testo del resto del paragrafo fornisce una descrizione più approfondita.
Se non c'è una descrizione aggiuntiva di questi elementi, tuttavia, non ha senso collocarli in un paragrafo semplicemente come un contenitore conveniente; un div
sarebbe più appropriato. In generale, un paragrafo dovrebbe contenere un paragrafo di testo e qualsiasi elemento direttamente correlato o descritto. Nient'altro ha molto senso in un paragrafo.
UPDATE: HTML5 aggiunge anche una serie di altri elementi semantici "contenitori", tra cui article
, nav
, header
, section
e aside
.
"e possibilmente liste (' ol' & 'ul')" no, gli elementi 'ol' e' ul' non sono validi all'interno degli elementi 'p'. – zzzzBov
@zzzzBov true, ho perso quell'errore nelle mie modifiche. Ho corretto la risposta. – cdeszaq