It really depends on your style of designing, some are able to plan their entire website out and know everything they will need in the beginning.
Some (I’m in this group) will get a basic idea about what they want and know about what they need. They can then start with the basic layout and slowly work everything (such as extra
<div>s) into the code.
While others get an idea and just start writing code.
All of these can end up with a beautiful finished project, and these certainly don’t cover EVERYONE’S individual styles. Some say coding is an art, and as such styles vary with personality.
No, but since it styles each element based on its class, you may need several
<div>s to act as each object you want.