7

如果我在 Gmail 或 Outlook 中打开以下 HTML 电子邮件,它会按原样呈现:

<img src="img.png" />

但是,如果我在 Outlook 中打开它,然后将其转发到 Gmail,它会添加额外的垃圾 HT​​ML,使该区域高于应有的高度(“p”标签负责增加高度 - 特别是 3px):

<p class="MsoNormal">
    <span style="font-size:10.0pt">
        <img src="img.png">
        <u></u>
        <u></u>
     </span>
</p>

Gmail中有很多解决间距问题的解决方案,比如在图像中添加display:block,将font-size和line-height设置为0等。我已经尝试了十几种方法,但没有一个因为落后而奏效我无法控制的场景 HTML 修改 - 样式和属性被剥离,带有自己属性的标签被添加等等。

是否有一种解决方法可以始终保留原始格式?我很乐意提供所需的任何其他详细信息,请告诉我。

4

2 回答 2

2

对此没有解决办法,但有一些方法可以限制和隐藏分隔的大小。我将其称为分离,但由于 Outlook 应用了 mso-normal p 标签,它实际上是顶部单元格的扩展。这是一篇相关文章。

表之间的间隙(大约 15 像素)比表行之间的间隙(2 像素)更大。它更复杂,但试着把你负担不起的所有东西都放在一张大桌子上。Colspans 和 rowspans 可能很复杂,但如果设置正确,它们就可以工作。

要隐藏分隔,请使用 bgcolor 集将所有表包装在主内容表中。例如,将一个大的内容窗格设置为白色。从 Outlook 发送时,您的所有子表都将移动,但间隙将保持白色,从而阻止不需要的行出现在您的电子邮件正文中。

页脚技巧 - 作为主白色面板的最后一个子表,当它分开时,它将在其下方创建一条白线。从主面板中删除页脚表格或将单元格 bgcolor 设置为与您的电子邮件背景相同以隐藏此分隔。

于 2013-03-01T17:00:10.380 回答
0

我设法通过更改 MsoNormal 类来改变这种情况

 <style>
    td p.MsoNormal {margin: -4px !important}

    /* ou */

    .MsoNormal {
        margin: -4px !important;
    }
 </style>
于 2020-09-30T11:02:21.183 回答