在跨客户端HTML电子邮件中使元素重叠?

use*_*ca8 11 html html-email

在浏览器的普通HTML中,使元素重叠很容易.

但是在HTML电子邮件的黑暗世界中,其座右铭是"像1996年的代码",因为Outlook使用MS Word和Gmail中的渲染引擎几乎删除了所有内容,因此我认为两种元素重叠的方法都不合适客户支持不佳:

  • Position在很多客户不支持,所以没有position: absolute;position: relative;没有top,left,right...
  • Gmail和其他人会删除负边距.所以,没有负利润.
  • overflow: visible;<img>标签全部需要明确的高度和宽度或布局时,由于缺少float支撑和不稳定的处理,使用元素的"悬垂" 以及宽度和高度小于元素内容大小的元素不能很好地工作的<div>S,必然需要根据表上的大部分时间.(也就是说,如果有可能,基于此的东西似乎是最可能的选择)
  • 没有任何涉及背景图片的选项是可选的,因为这些已在Gmail和其他人中删除
  • 甚至不想在HTML电子邮件中尝试使用CSS3或javascript ...

是否有任何可以可靠地用于在跨客户端HTML电子邮件中创建元素之间的重叠?和/或任何使元素从其边界框伸出而不影响其邻居定位的方法?

例如,假设你想做这样的事情(虚线和背景显示边界框),大图像挂在下面的行而不是向下推...

在此输入图像描述

元素(在这种情况下,<img>但不一定是图像)与其他元素重叠(在这种情况下,下面的行 - 但不一定是单独的行)而不将它们推开.

没有主要的客户端兼容性问题,有没有办法做到这一点?

编辑:刚刚发现这片疯狂扭曲的天才:使用colspans和rowpans使表格细胞重叠.这可能是一个选项,但尚未对其跨客户端渲染进行全面测试,但欢迎来自之前的经验或研究的任何信息.


假设我们正在制作一份新闻通讯,我们无法预测客户将使用哪些客户,因此我们必须支持流行的主流电子邮件客户端:Outlook,Gmail,Yahoo,Hotmail,Thunderbird,iOS/OSX,Android ......

小智 0

天才的解决方案在大多数情况下都有效。但对于 Outlook 2007、2010 和 2013,它不起作用,因为 rowspan 将被删除。