< p> è un classico elemento block-level. Se scrivi:

codice:

Testo1</p> 

Testo2</p>
Avrai un risultato del genere:
Testo1
Testo2


< span> è un classico elemento inline. Se scrivi:
codice:

Testo1 <span>Testo2</span></p>
Avrai un risultato del genere:
Testo1 Testo2

In pratica i block-level occupano tutto lo spazio di una riga e non possono essere affiancati (di default). Gli elementi inline possono essere molti su una stessa riga.

Per una spiegazione più completa ti rimando a questo


Spero di essere stato chiaro.


Chiedo a chiunque eventuali correzzioni