HTML emails are incredibly annoying. You can not rely on a huge number of the features of modern-day CSS if you want your email to render properly in the majority of email clients.
Here is a tiny subset of things to avoid:
position
float
margin
display
There are plenty more.
Basically, use nested tables for your layout. They're the only thing that will give you consistent rendering across email clients.
Dreamweaver is a very good tool for helping you to compose a nested table structure without having to manually write the HTML. I don't know whether there's a similar product available for free.
If you're targeting mobiles - and you should be - you can use media queries. Within those queries you may be able to get away with some more recent CSS features but err on the side of caution.