Peter B.
Peter B.

Reputation: 65

Break in <td> only in outlook 2016

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">&nbsp;
              </td>
            </tr>
            <tr>
              <td style="width:10px; height: 260px; background-color: #ffe0e6;  line-height:0; font-size: 0" height="260" width="10">&nbsp;
              </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">&nbsp;
      </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">&nbsp;
              </td>
              <td style="margin: 0; padding: 0; height: 10px; width: 260px; line-height:0; font-size: 0;  background-color: #ffe0e6;" width="260"
                height="10">&nbsp;
              </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">&nbsp;
      </td>
      <td style="margin: 0; padding: 0; width: 35px; display: inline-block; line-height:0; font-size: 0; text-align: center;" width="35">&nbsp;
      </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">&nbsp;
      </td>
    </tr>
  </tbody>
</table>

I circled the break in that pink td element where break happens

enter image description here

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">&nbsp;
              </td>

Upvotes: 0

Views: 778

Answers (1)

gwally
gwally

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">&nbsp;
              </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>   

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

Related Questions