如何在模板中为 Outlook 和 Gmail 电子邮件设置相同的填充?

问题描述

这是一个简单的问题,我在我的 ul 元素中的代码中设置了 15 像素的左边距,填充在两个平台(gmail 和 Outlook)中看起来完全不同

do.call(cbind,strsplit(x,"\\b(?=[<>])",perl = TRUE))
#     [,1] [,2] [,3]  
#[1,] "a"  "b2" "yy01"
#[2,] ">1" "<0" ">10" 

它在 gmail 中的样子:

enter image description here

以及它在 Outlook 中的外观:

enter image description here

没有提到移动应用也存在差异。

有没有办法轻松解决这个问题?我正在寻找类似 Outlook 版本的东西!

我只需要在这两个平台上兼容,不需要雅虎或其他东西!

非常感谢任何帮助!!!

解决方法

问题是每个电子邮件客户端都有不同的默认设置,而且还有一些奇怪的地方,例如 Outlook 如何忽略 <ul>/<ol> 中的样式。因此,我们需要重置所有元素的默认值。

此外,为了一致性,我们必须仅在 <li> 项中指定边距。不是填充,也不是 <ul>/<ol>

<ul style="margin:0;padding:0;">
    <li style="margin:0 0 0 30px;padding:0;">Point 1</li>
    <li style="margin:0 0 0 30px;padding:0;">Point 2</li>
    <li style="margin:0 0 0 30px;padding:0;">Point 3</li>
</ul>

然后,对于 Outlook 桌面,我们必须修复文本缩进。在 <head> 部分添加以下内容:

<!--[if gte mso 9]>
<style>
li {
    text-indent:-1em;
}
</style>
<![endif]-->

现在,如果您想在项目之间以及列表的顶部和底部留出一些空间,您可以执行以下操作:

<ul style="margin:0;padding:0;">
    <li style="margin:20px 0 3px 30px;padding:0;">Point 1</li>
    <li style="margin:3px 0 3px 30px;padding:0;">Point 2</li>
    <li style="margin:3px 0 20px 30px;padding:0;">Point 3</li>
</ul>

这会在列表的上方和下方给出 20 像素,每个列表项之间的距离为 6 像素 (3 + 3)。 30px 的边距是从左边开始的边距。