Reputation: 65
I have an email with img and "border" made with td. Only on outlook 2016 td with width of 260px shows with break in the middle. I can't find why. I copied many styles with cellpading:0, celspaccing:0 etc. but nothing helps. Problem seems to happen only on outlook 2016. The same email code works ok on other outlooks and web email clients.
That is my html code:
<table style="border-collapse:collapse;margin: 0; padding: 0; line-height: 0; font-size: 0; width: 335px; display: inline-block; text-align: center; vertical-align: top;"
border="0" cellspacing="0" cellpadding="0" align="center" valign="top">
<tbody>
<tr>
<td style="margin: 0; padding: 0; width: 20px; display: inline-block; text-align: center;" width="20">
</td>
<td style="margin: 0; padding: 0; line-height: 0; font-size: 0; width: 270px; text-align: center; background-color: #ffe0e6;"
border="0" cellspacing="0" cellpadding="0" align="center" width="270">
<img src="https://picsum.photos/270/270" width="270" style="max-width: 270px; max-height: 270px; margin: 0; padding: 0; line-height: 0; font-size: 0; border: 0; outline: 0; display: block; border-collapse:collapse;"
border="0" outline="0" height="270" align="top" cellpadding=”0″>
</td>
<td style="margin: 0; padding: 0; line-height: 0; font-size: 0; text-align: center;" border="0" cellspacing="0" cellpadding="0"
align="center">
<table style="border-collapse:collapse;margin: 0; padding: 0; display: inline-block; line-height: 0; text-align: center; font-size: 0; vertical-align: top;"
border="0" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="width:10px; height: 10px; line-height:0; font-size: 0" height="10" width="10">
</td>
</tr>
<tr>
<td style="width:10px; height: 260px; background-color: #ffe0e6; line-height:0; font-size: 0" height="260" width="10">
</td>
</tr>
</tbody>
</table>
</td>
<td style="margin: 0; padding: 0; width: 25px; display: inline-block; text-align: center; height: 270px;" width="25" height="270">
</td>
</tr>
<tr>
<td style="margin: 0; padding: 0; width: 20px; height: 10px; display: inline-block; text-align: center; line-height:0; font-size: 0"
width="20" height="10">
</td>
<td style="margin: 0; padding: 0; line-height: 0; font-size: 0; text-align: center;" border="0" cellspacing="0" cellpadding="0"
align="center">
<table style="border-collapse:collapse;margin: 0; padding: 0; display: inline-block; text-align: center; font-size: 0; line-height: 0; vertical-align: top; height: 10px"
border="0" cellspacing="0" cellpadding="0" align="center" height="10">
<tbody>
<tr>
<td style="margin: 0; padding: 0; height: 10px; width: 10px; line-height:0; font-size: 0; background-color: #ffffff;" width="10"
height="10">
</td>
<td style="margin: 0; padding: 0; height: 10px; width: 260px; line-height:0; font-size: 0; background-color: #ffe0e6;" width="260"
height="10">
</td>
</tr>
</tbody>
</table>
</td>
<td style="margin: 0; padding: 0; height: 10px; width: 10px; line-height:0; font-size: 0; background-color: #ffe0e6;" width="10"
height="10">
</td>
<td style="margin: 0; padding: 0; width: 35px; display: inline-block; line-height:0; font-size: 0; text-align: center;" width="35">
</td>
</tr>
<tr>
<td style="margin: 0; padding: 0; height: 30px; display: inline-block; line-height:0; font-size: 0; text-align: center;"
height="30">
</td>
</tr>
</tbody>
</table>
I circled the break in that pink td element where break happens
That pink vertical line should be all pink. It's that td:
<td style="width:10px; height: 260px; background-color: #ffe0e6; line-height:0; font-size: 0" height="260" width="10">
</td>
Upvotes: 0
Views: 778
Reputation: 3547
Your table structure seems needlessly complicated. Your in-line styles had a few commands that didn't need to be there. You also had table cells on the left side that didn't seem to be doing anything. So for simplicity, I created a new table. For example simplicity, I created a style sheet:
Style Sheet:
<style>
table {
border-spacing: 0 !important;
border-collapse: collapse !important;
table-layout: fixed !important;
margin: 0 auto !important;
}
</style>
<!--[if mso]><style>
table, td {
mso-table-lspace: 0pt !important;
mso-table-rspace: 0pt !important;
border-collapse: collapse;
}
img {
-ms-interpolation-mode:bicubic;
}
</style><![endif]-->
The code:
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#ff0000">
<img src="https://picsum.photos/270/270" width="270" style="max-width: 270px; max-height: 270px; margin: 0; padding: 0; line-height: 0; display: block;" border="0" outline="0" height="270" align="top" /></td>
<td bgcolor="#ff0000" valign="top" width="10">
<table bgcolor="#ffffff" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse; margin: 0; padding: 0; line-height: 0; text-align: center; font-size: 0; vertical-align: top;">
<tr>
<td width="10" height="10">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#ff0000" align="left" height="10" style="max-height: 10px !important;">
<table align="left" bgcolor="#ffffff" height="10" height="10" border="0" cellspacing="0" cellpadding="0" style="margin: 0; padding: 0; line-height: 0; font-size: 0;">
<tr>
<td width="10" height="10">
</td>
</tr>
</table>
</td>
<td bgcolor="#ff0000"></td>
</tr>
background-color
is buggy with Outlook. I suggest using background
instead
I tested this in Litmus to make sure it worked in all of the Outlook versions, Gmail and Apple / Android.
An easier way to get the same effect would be to use box-shadow
:
<img src="https://picsum.photos/270/270" width="270" style="max-width: 270px; max-height: 270px; margin: 0; padding: 0; line-height: 0; display: block; box-shadow: 10px 10px 0px red;" border="0" outline="0" height="270" align="top" />
The caveat is that it doesn't work for Outlook, Gmail, but if that works for you, it's a lot easier to style. I'm mentioning it for other people looking for ways to add a drop shadow to an image.
Good luck.
Upvotes: 1