Based on The Economist newsletter template analysis
Email HTML is fundamentally different from web HTML due to the diverse rendering engines used by email clients. This guide provides a comprehensive framework for creating professional, cross-client compatible email templates based on industry best practices demonstrated in The Economist’s newsletter.
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<!-- Meta tags and styles -->
</head>
<body>
<!-- Email content -->
</body>
</html>
Key Elements:
<!DOCTYPE html>)lang="en" for accessibility<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="format-detection" content="telephone=no, date=no, address=no, email=no">
<meta name="x-apple-disable-message-reformatting">
<meta name="robots" content="noindex, nofollow">
<meta name="referrer" content="no-referrer">
<!--[if mso]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
</head>
Purpose of Each:
html, body {
width: 100% !important;
margin: 0 auto !important;
padding: 0 !important;
}
* {
text-size-adjust: none;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
table {
border-collapse: collapse !important;
border-spacing: 0;
}
table, td {
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
}
img {
-ms-interpolation-mode: bicubic;
display: block;
border: none;
}
@media only screen and (max-width: 480px) {
.fluid {
width: 100% !important;
max-width: 100% !important;
}
.mobile-hide {
display: none !important;
max-height: 0 !important;
max-width: 0 !important;
}
.mobile-center {
text-align: center !important;
}
.mobile-padding {
padding: 16px !important;
}
}
/* Spacing utilities */
.pb16 { padding-bottom: 16px !important; }
.pt24 { padding-top: 24px !important; }
.ph32 { padding-left: 32px !important; padding-right: 32px !important; }
/* Typography utilities */
.txt18 { font-size: 18px !important; }
.txt24 { font-size: 24px !important; }
.txtc { text-align: center !important; }
.txtl { text-align: left !important; }
/* Responsive utilities */
.desktop-hide { display: none !important; max-width: 0 !important; }
.mobile-show { display: none !important; }
<!-- Outer wrapper for email clients -->
<!--[if gte mso 16]>
<table width="100%" align="center" bgcolor="#f2f2f2" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr><td width="100%" valign="top">
<![endif]-->
<center style="width:100% !important; background-color:#f2f2f2;">
<!--[if mso]>
<table width="600" align="center" bgcolor="#ffffff" cellpadding="0" cellspacing="0" border="0" role="presentation">
<tr><td width="600" valign="top">
<![endif]-->
<div role="document" style="max-width:600px; margin:0 auto; background-color:#ffffff;">
<!-- Email content here -->
</div>
<!--[if mso]></td></tr></table><![endif]-->
</center>
<!--[if gte mso 16]></td></tr></table><![endif]-->
<table width="100%" align="center" bgcolor="#ffffff" cellspacing="0" cellpadding="0" border="0" role="presentation" style="max-width:600px;">
<tr>
<td style="padding:16px;" valign="top">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr>
<td>
<!-- Content here -->
</td>
</tr>
</table>
</td>
</tr>
</table>
/* Primary serif font */
.serif {
font-family: Georgia, 'Times New Roman', Times, serif;
}
/* Sans-serif font */
.sans-serif {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
/* Custom font with fallbacks */
.custom-font {
font-family: 'CustomFont', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
<!--[if !mso]><!-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=CustomFont:wght@400;700&display=swap">
<!--<![endif]-->
.heading-xl { font-size: 36px; line-height: 43px; }
.heading-lg { font-size: 28px; line-height: 34px; }
.heading-md { font-size: 24px; line-height: 30px; }
.heading-sm { font-size: 20px; line-height: 26px; }
.body-lg { font-size: 18px; line-height: 25px; }
.body-md { font-size: 16px; line-height: 22px; }
.body-sm { font-size: 14px; line-height: 20px; }
.caption { font-size: 12px; line-height: 18px; }
<img src="image.jpg"
alt="Descriptive alt text"
width="600"
height="300"
style="display:block; width:100%; max-width:600px; height:auto; border:none;">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr>
<td align="center" style="padding:0;">
<img src="image.jpg" alt="Description" width="600"
style="display:block; width:100%; max-width:600px; height:auto; border:none;">
</td>
</tr>
</table>
<img src="image@2x.jpg"
alt="Description"
width="300"
height="150"
style="display:block; width:300px; height:150px; border:none;">
a {
color: #1a73e8;
text-decoration: underline;
}
a:hover {
color: #174ea6;
text-decoration: none;
}
/* Article links with custom styling */
.article-text a {
border-bottom: 1px solid #3C4FAF;
color: #121212;
text-decoration: none;
}
.article-text a:hover {
border-bottom-color: #142680;
color: #142680;
}
<table cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr>
<td style="border-radius:4px; background-color:#1a73e8;">
<a href="https://example.com"
style="display:inline-block; padding:12px 24px; color:#ffffff; text-decoration:none; font-weight:bold;">
Call to Action
</a>
</td>
</tr>
</table>
<a href="https://tracking.domain.com/click?id=12345&url=https%3A%2F%2Fexample.com"
target="_blank"
rel="noopener">
Link Text
</a>
<!--[if mso]>
<!-- Outlook-specific code -->
<table>...</table>
<![endif]-->
<!--[if !mso]><!-->
<!-- Non-Outlook code -->
<div>...</div>
<!--<![endif]-->
/* Gmail link color fix */
u + #body a {
color: inherit;
text-decoration: none;
font-size: inherit;
font-family: inherit;
font-weight: inherit;
line-height: inherit;
}
/* Gmail spacing fix */
div[style*='margin:16px 0'] {
margin: 0 !important;
}
*[x-apple-data-detectors],
.unstyle-auto-detected-links *,
.aBn {
cursor: default !important;
color: inherit !important;
text-decoration: none !important;
font-size: inherit !important;
font-family: inherit !important;
font-weight: inherit !important;
line-height: inherit !important;
}
/* Base styles (mobile) */
.container { width: 100%; }
.column { display: block; width: 100%; }
/* Desktop styles */
@media only screen and (min-width: 481px) {
.container { width: 600px; }
.column { display: table-cell; width: 50%; }
}
<div style="display:inline-block; width:100%; min-width:280px; max-width:300px; vertical-align:top;">
<!--[if (gte mso 9)|(IE)]><table><tr><td width="300" valign="top"><![endif]-->
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr>
<td>Content</td>
</tr>
</table>
<!--[if (gte mso 9)|(IE)]></td></tr></table><![endif]-->
</div>
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr>
<td style="padding:24px 16px;">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr>
<td width="128" align="left">
<img src="logo.png" width="128" height="32" alt="Company Logo">
</td>
<td align="right" style="font-size:14px; color:#666666;">
<a href="#" style="color:#666666;">View Online</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tr>
<td style="padding:16px;">
<h2 style="margin:0 0 16px 0; font-size:24px; font-weight:bold; color:#121212;">
Article Headline
</h2>
<p style="margin:0 0 16px 0; font-size:16px; line-height:24px; color:#333333;">
Article content goes here with proper spacing and typography.
</p>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation" style="background-color:#f8f9fa;">
<tr>
<td style="padding:32px 16px; text-align:center;">
<p style="margin:0 0 16px 0; font-size:14px; color:#666666;">
© 2025 Company Name. All rights reserved.
</p>
<p style="margin:0; font-size:12px; color:#999999;">
<a href="#" style="color:#999999;">Unsubscribe</a> |
<a href="#" style="color:#999999;">Update Preferences</a>
</p>
</td>
</tr>
</table>
<h1>Main Heading</h1>
<h2>Section Heading</h2>
<p>Body text</p>
<img src="chart.png" alt="Sales increased 25% in Q4 2024">
<table role="presentation">
Professional email HTML development requires attention to detail, thorough testing, and understanding of email client limitations. By following these patterns and practices demonstrated in The Economist’s template, you can create emails that render consistently across all major email clients while maintaining excellent user experience and accessibility standards.
Remember: email HTML is not web HTML. Always prioritize compatibility and testing over modern web development practices that may not be supported in email clients.