I have an email that works perfectly in all email clients (the Outlooks, iOS, Litmus etc) except the Gmail App on Android.
In that app it has gaps appear in it. This is a screenshot of the issue, this is just a basic proof of concept:
Some HTML is below, the issue happens with nested tables in table cells (td). So this has a set of tables and cells with images inside that are the same size of their cell.
Here is a jsfiddle of the html: http://jsfiddle.net/cntdsp5p/
And here is the html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html style="margin-top: 0px !important; padding-top: 0px !important">
<head>
<style type="text/css">
html, body{ margin-top: 0px !important; padding-top: 0px !important; }
body{ background-color:#FFFFFF; margin-top: 0px !important; padding-top: 0px !important; font-family:sans-serif; }
table{ margin-top: 0px !important; padding-top: 0px !important; }
a img{ color:#000001 !important; }
.wysiwyg-text-align-right{ text-align: right; }
.wysiwyg-text-align-center { text-align: center; }
.wysiwyg-text-align-left{ text-align: left; }
.wysiwyg-text-align-justify{ text-align: justify; }
body{ text-shadow:none; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0; color:#000000 !important; font-family:Arial; font-size:14px; line-height:24px; }
h1{ text-shadow:none; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0; color:#000000 !important; font-weight:400; font-family:Arial; font-size:36px; line-height:44px; }
h2{ text-shadow:none; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0; color:#000000 !important; font-weight:400; font-family:Arial; font-size:24px; line-height:32px; }
h3{ text-shadow:none; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0; color:#000000 !important; font-weight:400; font-family:Arial; font-size:15px; line-height:21px; }
p{ text-shadow:none; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0; color:#000000 !important; font-family:Arial; font-size:14px; line-height:24px; }
a{ text-shadow:none; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0; color:#1122CC !important; text-decoration:underline; }
.mi-all{ display: block; }
.mi-desktop{ display: block; }
.mi-mobile{
display: none;
font-size: 0;
max-height: 0;
line-height: 0;
padding: 0;
float: left;
overflow: hidden;
mso-hide: all; /* hide elements in Outlook 2007-2013 */
}
</style>
<style type="text/css" >
@media only screen and (max-device-width: 480px), screen and (max-width: 480px), screen and (orientation: landscape) and (max-width: 630px) {
/* very important! all except 'all' and this current type get a display:none; */
.mi-desktop{ display: none !important; }
/* then show the mobile one */
.mi-mobile{
display: block !important;
font-size: 12px !important;
max-height: none !important;
line-height: 1.5 !important;
float: none !important;
overflow: visible !important;
}
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="background: #FFFFFF; color: #000000 !important; font-family: Arial; font-size: 14px; line-height: 24px; margin: 0px 0 0 0px; padding: 0px 0 0; text-shadow: none" bgcolor="#FFFFFF">
<style type="text/css">
body {
margin-top: 0px !important; padding-top: 0px !important;
}
body {
background-color: #FFFFFF; margin-top: 0px !important; padding-top: 0px !important; font-family: sans-serif;
}
body {
text-shadow: none; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; color: #000000 !important; font-family: Arial; font-size: 14px; line-height: 24px;
}
</style>
<!-- admin --><div class="mi-desktop" style="display: block">
<table width="100%" cellspacing="0" cellpadding="0" align="center" style="background: #FFFFFF; border-collapse: collapse; border-spacing: 0px; border: 0px none; margin: 0px; padding: 0px" bgcolor="#FFFFFF">
<tbody>
<tr align="center" style="border-collapse: collapse; border-spacing: 0px; border: 0px none">
<td valign="top" align="center" style="border-collapse: collapse; border-spacing: 0px; border: 0px none">
<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" style="border-collapse: collapse; border-spacing: 0px; border: 0px none; margin: 0px; padding: 0px">
<tbody>
<tr align="left" style="border-collapse: collapse; border-spacing: 0px; border: 0px none">
<td width="100%">
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0px; border: 0px none; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr align="left" style="border-collapse: collapse; border-spacing: 0px; border: 0px none">
<td width="100%">
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0px; border: 0px none; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr style="border-collapse: collapse; border-spacing: 0px; border: 0; height: 50px">
<td width="100%" valign="top" height="50" align="left" style="background: #FFFFFF" bgcolor="#FFFFFF"><img width="1" height="50" style="border: 0; display: block; line-height: 1; opacity: 0; padding: 0px" src="http://mailrox-prod.s3.amazonaws.com/clear.gif" alt=""></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<table align="center" cellpadding="0" cellspacing="0" width="100%" style="background: #FFFFFF; border-collapse: collapse; border-spacing: 0; border: 0; margin: 0px 0 0; padding: 0px 0 0" bgcolor="#FFFFFF">
<tr align="center" style="border-collapse: collapse; border-spacing: 0; border: 0">
<td align="center" valign="top" style="border-collapse: collapse; border-spacing: 0; border: 0">
<div class="mi-all" style="display: block">
<table class="mi-all" width="566" align="center" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; display: block; margin: 0px 0 0; padding: 0px 0 0">
<tbody>
<tr align="left" style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="566">
<table width="566" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="566" height="117" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218755/490d09a47432a346ff8b0e78081c0893-original.jpg?1423832407" style="border: 0; display: block; line-height: 0px">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr align="left" style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="566">
<table width="566" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="62" height="208" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218759/19ddd566053aea03ffa236be1c3c7106-original.jpg?1423832410" style="border: 0; display: block; line-height: 0px">
</td>
<td width="437" align="left" valign="top">
<table width="437" align="center" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; margin: 0px 0 0; padding: 0px 0 0">
<tbody> <tr align="left" style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="437">
<table width="437" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="437" height="75" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218763/34af46b5e9b769c00b2ecdb0e18fb2f6-original.jpg?1423832414" style="border: 0; display: block; line-height: 0px">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr align="left" style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="437">
<table width="437" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="96" height="49" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218767/bd9eaee611c770ba4e1cf622dc3a8c2d-original.jpg?1423832418" style="border: 0; display: block; line-height: 0px">
</td>
<td width="52" height="49" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218769/45fec80922c3f48137c596c3ff749dfb-original.jpg?1423832419" style="border: 0; display: block; line-height: 0px">
</td>
<td width="83" height="49" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218771/b47339b9fc571427b652bddc8ff27308-original.jpg?1423832420" style="border: 0; display: block; line-height: 0px">
</td>
<td width="40" height="49" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218773/82abd90c62a69a367df080c998d95921-original.jpg?1423832422" style="border: 0; display: block; line-height: 0px">
</td>
<td width="42" height="49" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218775/bdc152f96b37a54241d4148d49370f3b-original.jpg?1423832423" style="border: 0; display: block; line-height: 0px">
</td>
<td width="41" height="49" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218777/6c5cecb72d86a5fd28304bc2d3c2251d-original.jpg?1423832425" style="border: 0; display: block; line-height: 0px">
</td>
<td width="83" height="49" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218778/1765f64e482ae6f647ac92dca014d991-original.jpg?1423832425" style="border: 0; display: block; line-height: 0px">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr align="left" style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="437">
<table width="437" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="437" height="84" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218766/674169b8b96dea256dd794836c855230-original.jpg?1423832416" style="border: 0; display: block; line-height: 0px">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
<td width="67" height="208" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218762/425f7c48b0e4215a8f3109dc03927e76-original.jpg?1423832412" style="border: 0; display: block; line-height: 0px">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr align="left" style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="566">
<table width="566" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: 0; margin-top: 0px !important; padding-top: 0px !important">
<tbody>
<tr style="border-collapse: collapse; border-spacing: 0; border: 0">
<td width="566" height="185" align="left" valign="top" style="line-height: 0px; mso-line-height-rule: exactly">
<img src="http://mailrox2-dev.s3.amazonaws.com/crops/3218758/8eb37cb41486fd5f0528650bea1fe398-original.jpg?1423832409" style="border: 0; display: block; line-height: 0px">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>
Again this email works perfectly in everything except the Android Gmail app, I'd love to know how to fix it.
Thanks.
Set on your table this
I could not identify the exact issue, but reviewing the code, there's a lot of declarations not needed and/or doing double work. I think that there may be some contradictions there. I've re-created your HTML (https://jsfiddle.net/edu8rdo/bp5kmgbp/) and ran a Litmus test on it, seeing no gaps in the Gmail.
Giving your tables
cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0; border: none;"
and your imagesstyle="display: block;"
is certainly a good start, but sadly the gmail android app does some extra-strange things with image sizes. It relates to how the app attempts to make the e-mail fit on your screen (you may notice differences between portrait and landscape mode).Solution to horizontal gaps (between cols):
To fix the horizontal gaps you can give your images an inline style of
width: 100%;
while giving the parent<td>
elementsmin-width:--px;
. You may even get away with just the min-width declaration if you put it on the right element.Solution to vertical gaps (between rows):
This will then leave you with two vertical gaps, one of which is easily taken care of by giving all of your images their width and height attributes. Always make sure to give all fixed-size images an explicit width and height.
The second vertical gap is harder to deal with. This one seems to appear when you nest a table with multiple rows of images inside of a cell whos siblings have no such nested tables. Here is another example of this problem. At the moment I do not have a solution to this type of gap... I will post here if I find or come up with one.
Edit:
I have found what appears to be a workaround solution here, however, I have had no luck implementing it. Maybe you will have better luck, but you may have to change your HTML structure for it to work. To sum up the workaround:
<tr>
s an inline style ofdisplay: block; white-space: nowrap;
.<td>
s an inline style ofdisplay: inline-block;
.<td>
s including themin-width
style that we added to fix the horizontal gaps (should no longer be necessary).<td>
s.min-width
.Campaign Monitor's CSS Guide may also be of use to you while troubleshooting this issue.
Here is your code with my first modifications (one vertical gap, no workaround):
And here your code with my attempt at implementing the workaround (table only):