【问题标题】:HTML rendering incorrectly in Outlook 2016?Outlook 2016 中的 HTML 呈现不正确?
【发布时间】:2021-08-22 21:48:26
【问题描述】:

我使用HandlebarsJS 创建了一个简单的HTML 电子邮件模板。

我已将文本和表格设置为在电子邮件中居中。

但是表格元素在左侧居中但在右侧溢出到电子邮件的右侧边框。

当我在chrome 中打开 HTML 文件时,不会发生这种情况 - 仅在 Outlook 中。

如何在 Outlook 中避免这种情况?

与表格相关的 HTML:

    <div class="table">
    <table id="carTable" role="presentation" cellspacing="0" cellpadding="0" border="0">
        <tbody>
        <tr>
            <th>Car Number</th>
            <th>Group</th>
        </tr>
        <!-- {{#each cars}} -->
        <tr>
            <td>{{carNumber}}</td>
            <td>{{processGroup}}</td>
        </tr>
        <!--{{/each}} -->
        </tbody>
    </table>
</div>

与表格相关的 CSS:

    <style>
    #carTable tr, td, th {
   padding: 10px;
   font-family: Arial;
   font-size: 13px;
   font-weight: normal;
   font-stretch: normal;
   font-style: normal;
   line-height: 1.38;
   letter-spacing: normal;
   color: #333333;
   }

   #carTable{
   border: solid 1px #cccccc;
   }

   #carTable td,
   th {
   height: 30px;
   transition: all 0.3s;
   /* Simple transition for hover effect */
   }

   #carTable th {
   background: #DFDFDF;
   /* Darken header a bit */
   font-weight: bold;
   text-align: left
   }

   #carTable td {
   background: #FAFAFA;
   text-align: left
   }

   /* Cells in even rows (2,4,6...) are one color */
   #carTable tr:nth-child(even) td {
   background: #F1F1F1;
   }

   /* Cells in odd rows (1,3,5...) are another (excludes header cells)  */
   #carTable tr:nth-child(odd) td {
   background: #FEFEFE;
   }

   #carTable tr>:nth-child(1):not(th){
   font-weight: bold;
   color: #2d89ac;
   }
   </style>

带有完整 HTML 代码的 CodePen 链接: https://codepen.io/Java123999/pen/zYGBoPe

问题的屏幕截图,注释表格与左侧的段落一致但不在右侧

【问题讨论】:

  • 您能否在 Outlook 中发布您的最终代码输出和问题的屏幕截图以及它的外观,即它在 Chrome 中的外观?
  • 我已经添加了问题的截图,如果你能看一下,谢谢
  • 从屏幕截图中,看起来您的列的宽度正在尽可能地减少,但是随着您拥有的列数和字体大小,它们不能再减少了,所以表格越过电子邮件边缘。不过我只是猜测。如果您可以直接在答案中或在 Codepen 之类的服务中发布代码并提供链接,那么我们可以调试实际输出并查看发送时发生的情况。
  • 这里是带有完整 HTML 代码的 codepen 链接:codepen.io/Java123999/pen/zYGBoPe

标签: html css html-table outlook handlebars.js


【解决方案1】:

Outlook 使用 Microsoft Word 作为呈现引擎。你必须遵守 Outlook 的规则。使用带有表格的老式 HTML,并在可能的情况下包含内联样式。要在 Outlook 中快速测试,假设您可以访问它,请尝试给自己发送一封 HTML 电子邮件。我不知道您使用的是什么版本,但快速搜索“outlook 发送 html 电子邮件”应该会提供良好的结果。

【讨论】:

  • 谢谢。我使用的是 2016 版 - 那我不应该使用 CSS 样式吗?
  • @java12399900 这不仅与您使用的内容有关,还与您的用户有关。 HTML 电子邮件应尽可能简单。电子邮件客户端之间的差异是巨大的。电子邮件客户端不会很好地支持像 tr&gt;:nth-child(1):not(th) 这样的复杂 CSS 规则。
  • 我已经添加了这个问题的截图,如果你可以看的话。谢谢
  • 这里是带有完整 HTML 代码的 codepen 链接:codepen.io/Java123999/pen/zYGBoPe
  • 微软已经浪费了这么多时间,让这么多人因为这个不遵守标准的愚蠢决定而感到沮丧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 2014-09-28
  • 2017-12-02
  • 1970-01-01
  • 2023-04-08
  • 2019-06-24
相关资源
最近更新 更多