My previous blog post was a nostalgic memory of the late 90s and early 2000s when I was creating a professional web site for the first time. The HTML version used was 3 and later 4, each web browser interpreted the HTML differently and usage of CSS and/or JavaScript was a very new thing thus very risky, too.
It would seem that the way we wrote HTML at that time is so different from today that it makes no sense to write more details about it.
Recently, however, I experienced a déjà vu that brought me out of my delusion. I was working on a design change and code refactoring of email sending functionality of a certain application. It turned out that an HTML version 5 that displays perfectly in all currently used web browsers, when sent as an email, breaks completely and looks different in every email client.
So you use table rows and columns (and colspan and rowspan attributes) to align things on the page...
The Internet Explorer horror has disappeared from the web browser market, but Outlook with its similarly quirky HTML formatting continues to be an important player especially in the corporate space.
I hope you don't even dare to think about using JavaScript, but CSS in the header section is ignored, too, so all the styles have to be inlined in the HTML the old way.
I also remember another trick: If HTML can't make it, Photoshop/Gimp can. When you lay out your graphics elements in one image file, you increase the chance that it will actually display correctly. But can you be sure? Even if you try to specify sizes of your layout components in pixels, they are usually scaled to some different size. This can include scaling of raster images like PNGs so no matter how hard you try to make them look sharp, they may be uglified. (If you think about using SVG, you are mostly out of luck, too.) If you use a transparent colour in the PNG, it may be replaced by a solid black (or some other colour of choice), so you better flatten the image with the right background colour.
So, a back-end engineer who used to work with HTML 20 years ago can be better skilled for email formatting than a young "up-to-date" front-end guy...
OK, enough complaining, if you really want to get something done, I will conclude with a couple of interesting links: