If we developers find it complicated to have cross-browser compatibility, imagine email clients, well, each one implements whatever you want at any time you want, so in summary, you can look for a website that shows htm / css compatibility and choose the best approach for your html.
CampaignMonitor - Email Client CSS Support
MailChimp - Email Client CSS Support
There are articles saying about good practices, about not using css in
<head> or not using
background-image , most of them are out of date.
Another legal approach is to use templates on this site: Zurb - Template emails You can find a template click on View Tests and he will do a simulation on different email servers, after finding a template with the features you need is just download or give a crtl + u to see how he mounted.
Oh, of course they use link that allows you to preview your templates before submitting them.