HTML 电子邮件模板是否应使用 table 元素进行布局?
Should HTML email template use table element for the layout?
我看过一堆 HTML 电子邮件模板示例,它们都使用 <table>
元素进行布局。使用 <table>
有什么具体原因吗?我试着在没有它的情况下制作一个,它对我有用。我是否应该担心它可能会因使用不同浏览器的其他人而中断?
如今仍在使用表格的主要原因是支持 Outlook 2007/2010/2013。那些版本使用 Microsoft Word 引擎来呈现 HTML,而且相当混乱。它对 CSS 的支持有限(例如没有浮动或位置),并且一些 CSS 属性仅在某些特定的 HTML 元素上受支持。例如,在 上支持填充,但在 .即使理论上您可以在更多语义元素(如标签)上使用填充,或者在元素上使用边距,Word 的呈现引擎仍然存在大量错误,并且使用此类 HTML 和 CSS 代码可能会出现不可预测的行为.因此,开发人员发现直接使用更容易。
但问题是:如果您觉得不需要支持 Outlook 2007/2010/2013,那么您绝对可以放弃表格并改用更好的代码。即使您需要支持它,也可以在没有表格的情况下完成简单的一列布局。您的模板在 Outlook 2011 中工作的原因是此版本(仅 Mac)使用 WebKit 呈现引擎(就像在 Safari 或 Apple Mail 中一样)。
参考这个旧的post(why-is-it-still-recommended-to-use-tables-for-email-structure)和我自己的一些实验:
我们绝对可以使用 HTML 标签,而不仅仅是 <table>
标签。它在现代浏览器中得到很好的呈现。我亲自试验过 Chrome(这很可能意味着它适用于所有基于 chromium 的浏览器)和 Safari。
我注意到的另一件事是,电子邮件客户端剥离了模板并删除了除主要内容之外的所有标签。换句话说,它只呈现 <body>
标签内的内容,并删除其他标签,如 <html>
、<head>
,包括 <body>
标签本身。所以我根本不在我的模板中使用这些标签。
我看过一堆 HTML 电子邮件模板示例,它们都使用 <table>
元素进行布局。使用 <table>
有什么具体原因吗?我试着在没有它的情况下制作一个,它对我有用。我是否应该担心它可能会因使用不同浏览器的其他人而中断?
如今仍在使用表格的主要原因是支持 Outlook 2007/2010/2013。那些版本使用 Microsoft Word 引擎来呈现 HTML,而且相当混乱。它对 CSS 的支持有限(例如没有浮动或位置),并且一些 CSS 属性仅在某些特定的 HTML 元素上受支持。例如,在 上支持填充,但在 .即使理论上您可以在更多语义元素(如标签)上使用填充,或者在元素上使用边距,Word 的呈现引擎仍然存在大量错误,并且使用此类 HTML 和 CSS 代码可能会出现不可预测的行为.因此,开发人员发现直接使用更容易。
但问题是:如果您觉得不需要支持 Outlook 2007/2010/2013,那么您绝对可以放弃表格并改用更好的代码。即使您需要支持它,也可以在没有表格的情况下完成简单的一列布局。您的模板在 Outlook 2011 中工作的原因是此版本(仅 Mac)使用 WebKit 呈现引擎(就像在 Safari 或 Apple Mail 中一样)。
参考这个旧的post(why-is-it-still-recommended-to-use-tables-for-email-structure)和我自己的一些实验:
我们绝对可以使用 HTML 标签,而不仅仅是 <table>
标签。它在现代浏览器中得到很好的呈现。我亲自试验过 Chrome(这很可能意味着它适用于所有基于 chromium 的浏览器)和 Safari。
我注意到的另一件事是,电子邮件客户端剥离了模板并删除了除主要内容之外的所有标签。换句话说,它只呈现 <body>
标签内的内容,并删除其他标签,如 <html>
、<head>
,包括 <body>
标签本身。所以我根本不在我的模板中使用这些标签。