Div and span are normal tags that exist as a way to make large divisions or spans of content on a page. For example, each "tile" on this web page is a group of two div tags. One for the shadow, and a second one nested within the shadow tag that contains all of the content. They would overlap making the shadow invisible, but I just pushed one over a little bit so that it would look like a shadow.

They have no HTML formatting of their own, so you can safely encompass large blocks of text with them without messing up the formatting of the web page. It is for that reason that divs and CSS go together like white on rice. Just put similar blocks of text in different div tags with different classes, and you can easily change around the look of your web page from one small CSS file.

As far as I know, they're exactly the same. I believe the div tag might insert a line break before and after the div whereas span doesn't do that (i.e., span is good for CSS'ifying text within a paragraph), but beyond that they're the same.

While it is considered good practice to put everything possible into div tags and then format the div tags from a separate file, some things just don't work in div tags. I can't say what things do and don't as I don't know which do and don't. But rest assured, you'll eventually find something that doesn't work when used on a div or span tag. Only when this occurs should you resort to applying it to another HTML tag.

So basically the point of this small lesson is to tell you to put whatever possible into div and span tags, then test, then whatever doesn't work in them put into the other HTML tags.

Just in case you didn't come to this conclusion on your own, the div tags are: <div> and </div>, and the span tags are <span> and </span>.