There are basically two schools of thought.
1) The style that follows the layout 2) The layout that follows the style.
You must figure out which one you want to make, and try to stick with one or the other. if you mix too much, then this is pointless, and you just have a huge mess.
In the first case, you have installed markup that does not change. You define the style so that it looks the way you want. It is in the css zen residential garden. This requires your markup to be very semantic. The disadvantage is that you often have many repeating styles, because when using this method it is not always possible to stylishly erase.
In the second, you create many common styles, and then adapt your layout to styles. For example, you could have classes "float", "thinBorder", "bold", then apply these styles to your markup. The disadvantage here is that if your style needs to be changed, you need to change the HTML (or bold, or some of them). The good news is that your CSS is much cleaner and easier to maintain.
It sucks, but you have to compromise.
Erik funkenbusch
source share