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