Just to clear up a common misconception, one that seems to be at the root of every newcomer's approach to coding for standards, you do not use divs instead of tables. That's important enough to repeat, "you do not use divs instead of tables".
What do you use? You use well structured, semantic and well formed html instead of table layouts. A non-trivial table layout cannot be well structured nor semantic, though it can contain well formed (valid) html.
The div element is a non-semantic structural container that lets you form groupings of other, semantic, elements. Notice, I said elements. A div should never contain bare nekkid content, only elements.
These groupings provide independent styling contexts. Think of the div as a drawer in a chest. You can arrange and re-arrange the socks, handkerchiefs and underwear in one drawer (div) without affecting the contents of other drawers. Further, you can arrange and re-arrange the positioning of the drawers in the chest without affecting the contents of the drawers.
Keep in mind that the div is semantically neutral. It says nothing about what its %flow element contents are. Use the div only for its proper structural purposes. Replacing tables is not it.