【问题标题】:Email signature generated html table stretched vertically in Outlook 2010电子邮件签名生成的 html 表格在 Outlook 2010 中垂直拉伸
【发布时间】:2011-08-26 11:29:16
【问题描述】:

我用 PHP 编写了一个电子邮件签名生成器。该程序以以下文件格式输出输出:

signature_file.htm

signature_style.css

signature_image_folder

图像和样式表在 htm 文件中链接。这在网络浏览器中查看时有效。

当我将文件复制到以下路径时:

..\Documents and Settings\user_name\Application Data\Microsoft\Signatures\

对于在 Outlook 2010 中的签名管理器中显示的签名,它看起来很好 - 除了包含所有信息的表格被垂直拉伸之外,字体、图像等都很好。行的高度似乎已扩大到 100%。

在 CSS 文件中,我静态指定了表格高度,但 Outlook 似乎覆盖了它。

此外,当从 Outlook 加载签名时,它会创建一个 *.rtf 文件。在 rtf 中,高度也是错误的。

【问题讨论】:

  • 你能分享一个例子吗?使用jsfiddle.net
  • 嗨,jackJoe,这里是代码:jsfiddle.net/nk9v5
  • 检查你的代码后,我真的找不到这种行为的原因......我建议指定内联样式(是的,老派),还为每个 @987654324 指定高度@ 甚至表中的表。通常我不依赖链接的 CSS 来处理 html 电子邮件。
  • 嗨,感谢您的建议。做到了...它不会让步... :(
  • 您能否提供您在电子邮件中看到的内容的屏幕截图?并指出哪里错了?使用 imgur.com 之类的东西来分享图片。

标签: html outlook


【解决方案1】:

我想通了。

由于某种原因,Outlook 不理解布局样式,例如填充。我必须摆脱所有行、列等的高度,摆脱所有填充,只拥有一个仅由其内容大小的“压扁”表。然后在我需要一些填充的地方,我只是根据需要
它。

不幸的是,这一切都是徒劳的(除了知识),因为最后我工作的营销人员告诉我使用不使用表格的更丑陋的布局......真丢脸! :) 感谢杰克乔的所有帮助! :D

保重, 彼得。

【讨论】:

    【解决方案2】:

    好的,我想我有一些提示可以让你解决这个问题。

    (您现在肯定知道,Outlook 在处理 html 方面非常糟糕,即使没有意义,它也可以做最离谱的事情)。

    所以,我的建议是:

    1. 您的桌子有一个定义的高度:

      (table#signature_table)height: 450px;

      你需要去掉那个高度!这 桌子将有任何高度 需要。

    2. 那么,大多数元素都有一个 padding-toppadding-bottom (例如:th#employee_nameth#employee_position),尝试 通过将高度定义为 这些元素的<td>;为了 示例:

      如果你有一个 padding-bottom: 20px, 只要确保你的<td> 有 足够的高度(与文字) 将其“拉伸”到之前的 20px, 喜欢<td height=40>。这需要 进行测试,直到你得到正确的 大小。

    3. 尝试使用像素而不是点, 点大小不太“可控”;

    4. 确保使用内联样式 (如style="font-size: 11px;"),这是一种确保 样式正在被应用, 特别是对于电子邮件客户端 不接受外部 CSS(Gmail、 等等)。应用所有样式,不要 忘记将字体系列添加到 表(至少)。这是一种浪费 代码,但最终它是值得的 额外的代码。

    5. 简化:不要使用表头 <th> 和其他类似的标签 (IMO),我只使用<tr><td> 而已。我认为 Outlook 可以风格 <th> 以意想不到的方式。 创建 html 电子邮件意味着您需要 像你一样编码 html 和 css 是在 1999 年,所以不要介意使用 表等。确保代码 验证。

    【讨论】:

    • 您好,感谢您的帮助。不幸的是,我已经应用了所有的建议,但是没有任何改变。代码现在验证,单元格的高度是内联设置的,没有应用填充,并且表格没有设置高度......仍然是一样的...... :(此时我很绝望。
    • @Piotr 您的代码没有遵循我使用内联 CSS 的建议...它应该将样式直接应用于标签,例如 <td style="font-size: 11px;"> 以及 <td> 元素上的高度,需要在没有单位的情况下定义,例如<td height=30>。除非您以内联方式应用样式,否则您可能会一直遇到同样的问题。
    • 你好,jackJoe,我完全按照你说的做了(我认为):jsfiddle.net/sBAra 仍然没有骰子! :(
    • 好的,我刚看到,暂时没有想法。我只有 Outlook 2007,它可以从浏览器窗口复制/粘贴,这是我的最后一个建议,但显然将签名文件放在适当的文件夹中并没有什么接近,尽管您可以通过“构建”签名文件复制/粘贴并另存为签名,想试试吗?
    • 不幸的是,这个想法是为一家公司自动生成定制的“花式”签名......这样每个人看起来都完全一样。这是必要的,因为不幸的是,有些人比其他人更精通技术。被叫到 100 多人为他们每个人配置签名是一件麻烦事。这可以通过 microsoft exchange 来完成,但是我们的工作场所还​​没有投资。所以有那个...... :(
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2012-03-07
    • 2011-12-15
    • 2016-10-18
    • 2012-09-19
    • 2023-03-09
    • 2013-03-24
    相关资源
    最近更新 更多