0Pricing
HTML Academy · 课时

基于表格的布局方法

了解 HTML 邮件为何使用表格而不是 div

基于表格的布局方法 是 CoddyKit 上的免费 HTML Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 HTML Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 HTML Academy 课程共包含 4 节课。

为什么电子邮件使用表格

电子邮件客户端——尤其是使用 Microsoft Word 渲染引擎的 Windows 版 Outlook——不支持弹性盒布局、网格布局,甚至连可靠的块级布局也不支持。表格是唯一能在所有主流邮件客户端中保持一致渲染的结构原语。

单个外层表格

每封响应式电子邮件都以一个宽度为 100% 的外层 <table> 开始,它充当邮件正文;随后是一个固定宽度的内层表格(通常为 600px),用于容纳实际内容。这种两层模式是几乎所有生产级模板的基础。

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

必需的表格属性

请始终在每个表格上包含 cellpadding="0" cellspacing="0" border="0"。如果缺少这些属性,Outlook 会插入意外间隙。添加 role="presentation" 会告诉屏幕阅读器跳过表格语义;这是正确的,因为布局表格不是数据表格。

使用嵌套表格创建列

要创建多列,请在内容行中嵌套一个包含两个 <td> 单元格的表格。每个单元格容纳一列。请避免使用 div+float——Outlook 会忽略 float,仍将列垂直堆叠,破坏设计。

600px 是标准宽度

桌面端事实上的预览窗格宽度约为 600px。针对这一宽度进行设计,可以让邮件在 Outlook、Gmail 桌面版、Apple Mail、Yahoo 和 Thunderbird 中同时保持舒适可见,并且无需水平滚动。

使用媒体查询在移动端堆叠

对于小屏幕,请通过媒体查询选择内层表格单元格,将宽度设置为 100%,并将显示方式设置为 block,使各列垂直堆叠。iOS Mail 和 Gmail Android 支持媒体查询;Outlook 365 桌面版会忽略它们,但仍保留 600px 的桌面布局。

@media (max-width: 600px) {
  .col {
    display: block !important;
    width: 100% !important;
  }
}

在单元格级别设置背景

背景颜色和背景图片应应用于 <td> 单元格,而不是 div。Outlook 能可靠支持 td 上的 bgcolor 属性,但根据客户端的不同,div 上的 CSS background-color 可能会被删除或完全忽略。

使用 VML 设置 Outlook 背景

Outlook 需要使用矢量标记语言(VML)来显示背景图片。请将现代 CSS background-image 放在条件 <!--[if mso]>...<![endif]--> 注释中,并提供内联 v:rect 回退方案,这样 Outlook 可以渲染图片,而其他客户端则使用 CSS。

避免使用现代 CSS

请跳过弹性盒布局、网格布局、自定义属性(支持有限)以及大多数定位方式。坚持使用 display: block/inline、通过属性指定的固定宽度和内联样式。按网页标准来看它的输出显得过时,但在每个收件箱中都能一致渲染。

使用 cellpadding 设置内部间距

请使用 cellpadding(属性)以及一个带内边距的单独 <td> 来设置内部留白。表格单元格上的外边距在 Outlook 中不可靠,而 td 上的内边距具有普遍兼容性。将 bgcolor 和内边距组合到同一个 td 上,即可在不使用 div 的情况下创建“卡片”组件。

可访问性

请为每个布局表格添加 role="presentation",这样屏幕阅读器就不会宣布“第 1 行,第 2 列中的第 1 列”。此外,请为每张图片添加替代文本,为所有内容提供真实文本(不要使用文字图片),并确保标题层级清晰有序。

知识检查

为什么布局电子邮件时使用表格,而不是使用 CSS 弹性盒布局的 div?

总结

HTML 邮件布局使用嵌套表格,并将 cellpadding、cellspacing 和 border 设置为 0,同时使用 role="presentation"。宽度为 100% 的外层表格居中放置 600px 的内层表格;嵌套的 td 单元格构成列,媒体查询可以在移动端将它们堆叠。请避免使用弹性盒布局和网格布局,在 td 上使用 bgcolor,并为 Outlook 的背景添加 VML 回退方案。

常见问题解答

「基于表格的布局方法」课时是免费的吗?

是的 — 「基于表格的布局方法」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 HTML Academy 课程的其余内容,请升级到 CoddyKit PRO。 HTML Academy 课程共包含 4 节课。

「基于表格的布局方法」这节课中我会学到什么?

了解 HTML 邮件为何使用表格而不是 div 你通过在浏览器中直接运行的动手代码来练习 HTML Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 HTML Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 HTML Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「基于表格的布局方法」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 HTML Academy 课中编写并运行代码吗?

能。每节 HTML Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 基于表格的布局方法
  2. 邮件内联样式
  3. 邮件客户端中的图像处理
  4. 使用邮件测试工具进行测试
← 返回 HTML Academy