在浏览器窗口(或电子邮件客户端预览窗格)中将HTML电子邮件内容居中的最佳方法是什么?


92

我通常将CSS规则margin:0 auto与960容器一起用于基于标准浏览器的内容,但是我是HTML电子邮件创建的新手,因此我想将以下设计放在没有标准CSS的浏览器窗口中。

http://static.helpcurenow.org/mockups/emails/2010/may-survey/survey.html

我似乎还记得在某个地方,也可以通过将您的电子邮件表设计包装到外部表集中width:100%text-align:center在主体上使用某种内联样式或类似的方式来完成它,来完成此操作?

是否有最佳做法?


2
“ margin:0px auto” ..仅供参考,当您使用0任何东西时,无需指定单位:)
Matt

Answers:


210

将桌子对准中心。

<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td align="center">
            Your Content
        </td>
    </tr>
</table>

如果您有“您的内容”(如果是表格),请将其设置为所需的宽度,您将获得居中的内容。


有没有做同样事情的CSS属性?text-align: center没有做同样的事情。
2014年

1
一些电子邮件提供商要求使用这种过时的居中对象方法。(我在考虑Apple Mail)。
Drazzah 2014年

84
当您为电子邮件布局编写代码时,您的编写方式实际上是1999
。– Captain Hypertext

这将导致子表td在Outlook Web App(OWA)中也居中居中,无论其对齐方式是否设置为left
Ishmael

30

为了Google员工和完整性起见:

当需要经历实现html电子邮件模板或签名的痛苦时,这是我经常使用的参考:http : //www.campaignmonitor.com/css/

我没有列出大多数(如果不是全部)CSS选项的CSS支持,可以很好地与一些最常用的电子邮件客户端进行比较。

为了居中,请随意使用CSS(因为中align已弃用该属性HTML 4.01)。

<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td style="text-align: center;">
            Your Content
        </td>
    </tr>
</table>

6
如果您将表格或其他块级元素居中,则无法使用。
罗马

没错,我不确定是否margin: 0 auto;支持(与结合使用width),但通常适用于浏览器,但是我不确定在这种情况下电子邮件客户端是否使用得当。
Justus Romijn 2012年

2
是的,我不确定是否所有的浏览器都支持它,所以使用了可信赖但已弃用的<center>标签。
2012年

10

table align =“ center” ...这将使页面的表格中心对齐。

使用td align =“ center”将td内的内容居中,这对于居中对齐的文本很有用,但是某些电子邮件客户端会将内容居中在子级表中时会遇到问题,因此将td align用作将“容器”居中的顶级方法页面上的表格不是这样做的方法。请改用表格对齐。

仍然仍然使用100%包装器表,纯粹用作身体的包装器,因为某些电子邮件客户端不显示身体背景色,但是会与100%表一起显示,因此请将您的身体颜色添加到身体和100 %表。

关于HTML电子邮件开发人员的所有怪癖,我可以继续讨论很长时间。我只能说是测试再测试。Litmus.com是测试电子邮件的绝佳工具。

您做得越多,您就会了解在哪些电子邮件客户端中有效的方法。

希望这可以帮助。


7

这是您的防弹解决方案:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="33%" align="center" valign="top" style="font-family:Arial, Helvetica, sans-serif; font-size:2px; color:#ffffff;">.</td>
    <td width="35%" align="center" valign="top">
      CONTENT GOES HERE
    </td>
    <td width="33%" align="center" valign="top" style="font-family:Arial, Helvetica, sans-serif; font-size:2px; color:#ffffff;">.</td>
  </tr>
</table>

只是尝试一下,看起来有点混乱,但即使使用适用于Yahoo邮件的新Firefox Update,它也可以使用。(不将电子邮件居中,因为将主表替换为div)


1
较小的看不见的“期间”应替换为&nbsp; 并应删除使不可见的较小时间段不可见的说明。当这些设置直接进入我的提供商的垃圾邮件地狱时,我什至无法收到带有这些设置的测试电子邮件:)恶意软件防御使任何腥味甚至更加腥...例如:`<td width =“ 33%” align =“ center” valign =“ top”> </ td>`
Techmag,2016年

6

电子邮件中的CSS很麻烦。不幸的是,您可能需要表格,因为并非所有电子邮件客户端都大力支持CSS。

也就是说,请使用HTML Transitional DOCTYPE(而不是XHTML),并使用<center>


5

我在Outlook和Office365方面苦苦挣扎。令人惊讶的是,似乎起作用的是:

<table align='center' style='text-align:center'>
  <tr>
    <td align='center' style='text-align:center'>
      <!-- AMAZING CONTENT! -->
    </td>
  </tr>
</table>

我只列出了解决Microsoft电子邮件问题的一些关键事项。

我可能会补充说,构建一个在所有电子邮件上看起来都不错的电子邮件是很痛苦的。这个网站非常适合测试:https//putsmail.com/

它使您可以列出要发送测试电子邮件的所有电子邮件。您可以将代码直接粘贴到窗口中,进行编辑,发送和重新发送。它帮助了我很多。


谢谢,这对我有用。我试图居中使用Outlook中的发布者创建的电子邮件模板的中心
anandhu

2

在某些情况下,在Outlook 2007、2010、2013中居中对齐html电子邮件时,margin =“ 0 auto”不会削减芥末。

请尝试以下操作:

使用style =“ table-layout:fixed;”将您的内容包装在另一个表中。和align =“ center”。

<!-- WRAPPING TABLE -->
<table cellpadding="0" cellspacing="0" border="0" style="table-layout: fixed;" align="center">
  <tr>
    <td>
      <!-- YOUR TABLES AND EMAIL CONTENT GOES HERE -->
    </td>
  </tr>
</table>

1
table如果只有一行和一列,为什么要为此使用a ?您没有利用table元素的任何功能。
dg99

您在html电子邮件中使用表格,因为对几乎所有客户都适用的html电子邮件的任何问题的解决方案都将以某种方式涉及“添加另一个表格”
user254694 19/11/18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.