【问题标题】:Removing a 1px gap in Outlook 2013-2016消除 Outlook 2013-2016 中的 1px 差距
【发布时间】:2016-09-23 18:09:48
【问题描述】:

我正在尝试消除出现在 Outlook 2010、2013、2016 中的 vml 图形最右侧的 1px 间隙。

我知道 Outlook 会自动将 <p></p> 添加到 xml 的底部,这就是我将字体大小和行高归零的原因,它修复了底部的间隙。关于可能会自动添加的其他内容可能会增加空间的任何建议?

<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
  <v:polyline style="width: 500px; 24px; display: inline-block; padding-right: 0pt; border: 0pt !important;" fillcolor="#563d82" strokecolor="#563d82" strokeweight="0pt" stroke="false" coordorigin="0 0" coordsize="24 500" v:borderrightcolor="#ff0000" points="0pt,24pt, 500pt,24pt, 500pt,0pt, 0pt,24pt">
  </v:polyline>
</xml>

完整的html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width"/>
</head>
<body>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; padding: 0px !important; margin: 0;">
  <tr>
    <td align="right" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0;">
      <table cellpadding="0" cellspacing="0" border="0" align="right" width="498" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; padding: 0pt !important; margin: 0pt; overflow: hidden; display: inline-block;">
        <tr align="right">
          <td align="right" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; mso-margin-top-alt: 0pt; mso-margin-bottom-alt: 0px; padding: 0px !important; margin: 0; font-size: 0; line-height: 0; display: inline-block;">
            <xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
            <v:polyline style="width: 500px; 24px; display: inline-block; padding-right: 0pt; border: 0pt !important;" fillcolor="#563d82" strokecolor="#563d82" strokeweight="0pt" stroke="false" coordorigin="0 0" coordsize="24 500" v:borderrightcolor="#ff0000" points="0pt,24pt, 500pt,24pt, 500pt,0pt, 0pt,24pt">
            </v:polyline>
            </xml>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table bgcolor="#563d82" width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; padding: 0px !important; margin: 0;">
  <tr>
    <td align="center">
      <p class="footerlink" style="padding: 0px; color: #ffffff; font-size: 18px; line-height: 22px; text-align: left;">Placeholder text.</p>
    </td>
  </tr>
</table>
</body>
</html>

我应该添加此 html 仅在 Outlook 中可见。我有一个涵盖所有其他浏览器的 CSS 图形。太糟糕了,它不适用于 Outlook。

【问题讨论】:

  • outlook 的 html 渲染引擎使用 word,而 word 的 html 渲染太糟糕了,你最好使用超现代的“telnet to port 80”浏览器来渲染网站。

标签: outlook html-email vml


【解决方案1】:

将两个表格替换为右对齐修复了最右侧 1px 的间隙。

<div align="right" style="font-size: 0; line-height: 0;">
  <xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
    <v:polyline fillcolor="#563d82" strokeweight="0pt" stroke="false" strokecolor="#563d82" style="font-size: 0; line-height: 0;" points="0pt,25pt 500pt,25pt 500pt,0pt 0pt,25pt"></v:polyline>
  </xml>
</div>

这解决了 Outlook 2016 和 Windows 10 邮件的对齐问题,但它在 vml 图形和 Outlook 2010 和 2013 的表格之间留下了一条细线白线。我尝试添加 css 和表格边框,但它没有解决问题。

【讨论】:

  • 由于这个答案没有完全回答你原来的问题,我可以建议你用这个进度更新你的问题并删除这个答案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
相关资源
最近更新 更多