span é do tipo inline e não aceita height nem width como configuração no css:
Span A
Span B
Span C
div é do tipo block e ocupa a linha inteira::
Div A
Div B
Div C
div é do tipo block e aceita height e width, porém mesmo alterando a largura, ele continua ocupando a linha inteira:
Div A com 20%
Div B com 20%
Div C com 20%
Alterando div para inline-block com width de 20%
Div inline-block A com 20%
Div inline-block B com 20%
Div inline-block C com 20%
span com float left sobrepõe a div posterior:
Uma div qualquer ANTES do spans
Span A
Span B
Span C
Uma div qualquer DEPOIS do spans
span com float right também sobrepõe a div posterior:
Uma div qualquer ANTES do spans
Span A
Span B
Span C
Uma div qualquer DEPOIS do spans
No exemplo anterior, os spans flutuaram em cima da segunda div, vou colocar clear both nela:
Uma div qualquer ANTES do spans
Span A
Span B
Span C
Uma div qualquer DEPOIS do spans com clear both
div com display table
Div A com table-cell
Div B com table-cell
Div C com table-cell