gmail中的Html简报

时间:2010-09-16 19:00:15

标签: html gmail newsletter

我正在编写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屏幕截图:

gmail

其他电子邮件客户端的屏幕截图:

In other email clients

任何提示?

我们将不胜感激。

2 个答案:

答案 0 :(得分:4)

这是一个浏览器问题。将图像放入表格时,图像成为内联元素,位于文本行上。这意味着它下面会有空间(对于低于基线的文本行的部分,即下行),GMail的渲染是“正确的”。

然而,在Quirks mode以及“几乎标准”模式中,单元格中单独存在的图像的行为类似于块而不是内联元素,因此它不会获得额外的间距。看起来“其他”客户端处于Quirks模式,因为它重置了表格内的字体大小(典型的Quirks模式错误)。

通常你想不惜一切代价避免Quirks模式,所以你要使用标准模式并通过设置CSS display: blockvertical-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;