CSS - What is good style?

In another thread, I read about mixing font tags and CSS, especially that this is considered messy.

My problem is that, so far, I did not manage to create a pure CSS layout that was really accurate to the single pixel afterwards. Example: I was not able to specify the exact indent after a header tag, <h1> etc, such as that it looked the same in all popular browsers. Moreover, I had different blocks of "plain text" that had to be displayed differently (article text, comment text, etc). That is, I still needed some markup for these text blocks in order to assign them a specific layout.

A solution which I found rather elegant was using different CSS classes:

Four points:
1. defining your own classes is the way to go. You can also associate style definitions with element id's using the '#' symbol. For example,
#title {font-weight: bold; font-size: 16pt; margin-bottom: 10px}
Would style an element with the id of "title" rather than "class".

2. Browser support for things like indents, line-heights, etc. is very poor, so don't be too worried - we're all suffering under the same limitations.

3. As you have guessed, you should be using <span>, <div>, and <p> tags rather than <font> tags.