Both DIV and SPAN are "Generic Containers" as they do not apply any visible formatting without the use of the CLASS attribute and Cascading Style Sheets (CSS). The difference between DIV and SPAN is that the former is a block-level element and the latter is an in-line element.
The use of DIV and SPAN with CSS is quite successful with many web browsers. Using SPAN---and especially DIV---with client-side scripting is not very successful with many web browsers at this proprietary moment in time.