Search code examples
csshtml-tablehtml-email

Dynamic height 100% td for email


In a context of table emailing. I'm looking for an dynamic height width image of my cell column, the unknown height is defined dynamically by my content in rowspan:

* {padding: 0;}
table { border-collapse: collapse; }
img {width: 100%; height: 100%; display: block; }
<table width="300">
  <tr>
    <td colspan="3" height="20" width="100%"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" /></td>
  </tr>
  <tr>
    <td width="20" height="20">
      <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" />
    </td>
    <td rowspan="2" width="260" align="top">
      my content dynamic<br />
      my content dynamic<br />
      my content dynamic<br />
      my content dynamic<br />
      my content dynamic<br />
      my content dynamic
    </td>
    <td width="20" height="20">
      <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" />
      </td>
  </tr>
  <tr>
    <td width="20" height="100%">
      <img src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8zxDxHwAFtQJYX0yrrAAAAABJRU5ErkJggg==" />
      </td>
    <td width="20" height="100%">
      <img src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8zxDxHwAFtQJYX0yrrAAAAABJRU5ErkJggg==" />
    </td>
  </tr>
</table>

In my example, It's the 2 pinks columns that I want with height 100%. It's for an email so I can't use position absolute or JS trick's (according to the caniuse for email for cover a maximum of clients)


Solution

  • Just give the pink cells a bgColor attribute.

    * {padding: 0;}
    table { border-collapse: collapse; }
    img {width: 100%; height: 100%; display: block; }
    <table width="300">
      <tr>
        <td colspan="3" height="20" width="100%"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" /></td>
      </tr>
      
      <tr>
        <td width="20" height="20">
          <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" />
        </td>
        <td rowspan="2" width="260" align="top">
          my content dynamic<br /> my content dynamic<br /> my content dynamic<br /> my content dynamic<br /> my content dynamic<br /> my content dynamic
        </td>
        <td width="20" height="20">
          <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" />
        </td>
      </tr>
      <tr>
        <td width="20" bgColor="#ff0458">
          <img src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8zxDxHwAFtQJYX0yrrAAAAABJRU5ErkJggg==" />
        </td>
        <td width="20" bgColor="#ff0458">
          <img src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8zxDxHwAFtQJYX0yrrAAAAABJRU5ErkJggg==" />
        </td>
      </tr>
    </table>