Practice, practice and more practice
The best way to learn is to experiment and test and then compare the results with the specs to make sure that what you see is what you are supposed to see. Read how something works then test it out and stress test it to make sure it does what it says on the box.
To have a good understanding of CSS you have to grasp concepts and rules behind it but you also have to understand how it actually works in the real world which can only be done with experimenting and listening to others who have been there before.
A lot of the cries for help in the forum are mainly caused by following bad practices or not understanding how something really works. There are of course bugs and traps for the unwary but they are well documented and answered daily in the forums.
We all make mistakes (and still do) and CSS is quite a rich language that often the finer details get overlooked.
The way I learned originally was as soon as I didn't understand something I would construct a few demos to test out and see what happens. I learn much quicker by seeing how something works rather than reading about it.
I do still test a lot these days especially before I give an answer to a question just to make sure that I'm not going senile and that what I say actually works.
If you are just starting out then you can use something like the [Sitepoint live demos to play around with the code and make changes in real time. You should also read through [URL="http://reference.sitepoint.com/css"]the reference ](http://reference.sitepoint.com/css/demos)as there is a lot of good information and best practices in there (not that I am biased of course:) ).