我正在编写html简报,并在gmail中遇到奇怪的事情。代码:
<table cellpadding="0" cellspacing="0" width="700" height="122">
<tr>
<td valign="top" colspan="3" width="689" height="8"><img src="http://www.url.com/img/product_top_border.gif"></td>
</tr>
<tr>
<td valign="top" width="12" height="106"><img src="http://www.url.com/img/product_left_border.gif"></td>
<td valign="top" height="106" width="689">
some content
</td>
<td valign="top" width="12" height="106"><img src="http://www.url.com/img/product_right_border.gif"></td>
</tr>
<tr>
<td valign="top" colspan="3" width="689" height="8"><img src="http://www.url.com/img/product_bot_border.gif"></td>
</tr>
</table>
Gmail屏幕截图:
其他电子邮件客户端的屏幕截图:
任何提示?
我们将不胜感激。
答案 0 :(得分:4)
这是一个浏览器问题。将图像放入表格时,图像应成为内联元素,位于文本行上。这意味着它下面会有空间(对于低于基线的文本行的部分,即下行),GMail的渲染是“正确的”。
然而,在Quirks mode以及“几乎标准”模式中,单元格中单独存在的图像的行为类似于块而不是内联元素,因此它不会获得额外的间距。看起来“其他”客户端处于Quirks模式,因为它重置了表格内的字体大小(典型的Quirks模式错误)。
通常你想不惜一切代价避免Quirks模式,所以你要使用标准模式并通过设置CSS display: block
或vertical-align:
来解决img-in-table问题 - 任何事情 - 但是 - <img>
元素上的基线,或者更好的是,转储丑陋的布局表并使用一些背景图像。然而,当然在电子邮件环境中,您的造型机会受到严格限制。
所以是的,尝试在图像上设置style="display: block"
以尝试使它们在Quirks vs Standards中显示相同的内容(如果您愿意),但请注意,这是处理HTML邮件时遇到的最少问题。你将面临比这更糟糕的破损。 HTML电子邮件在各个层面上都很糟糕;如果您有机会摆脱它,只需将链接发送到正确的网页,然后执行此操作。
答案 1 :(得分:0)
关于字体的更改,有点似乎“其他客户端”可能会显示非HTML正文,我认为gmail默认支持HTML。
您是否将内容数据设置为HTML? 例如,在c#中,您可能需要设置:
MailMessage mail = new MailMessage();
mail.IsBodyHtml = true;