带有条件VML的Windows 10 Mail App

时间:2016-03-24 06:54:36

标签: email outlook windows-10 vml

这个有点模糊,但我希望有人可以找到解决方案。

我正在创建一个带有全宽标题栏的电子邮件模板。经过大量的黑客攻击之后,我已经能够在大多数电子邮件客户端中使用背景图像样式和条件VML(对于Outlook客户端)进行良好的工作。

问题是Windows 10 Mail App响应Outlook条件语句,但无法正确呈现VML。这会导致图像图像丑陋,图像上显示“无法显示此图片”。

这是我的条件VML块......

<!--[if gte mso 9]>
    <v:rect stroke="f" fill="t" style="mso-width-percent: 980; height: 200; position: absolute; z-index:-1; mso-position-horizontal: left">
<v:fill type="tile" src="/Content/images/my_background.gif" color="#f4f4f4" />
    </v:rect>
<![endif]-->

所以我需要的是让Windows 10 Mail正确显示VML,或者完全忽略该部分。设计工作顺利,没有标题栏,但我只是不希望它显示损坏的图像图标。

2 个答案:

答案 0 :(得分:2)

部分解决方案A

将您的条件修改为

<!--[if (gte mso 9)&(lte mso 15)]>

和要在Outlook 2013中显示但不在Windows 10 Mail App中显示的VML块。 但是,它也将不显示 Outlook 2016.他们都认为他们是mso = 16。 (最后2个句子未经验证。)

部分解决方案B

https://litmus.com/community/discussions/4176-windows-10-mail-bulletproof-background-buttons-broken

答案 1 :(得分:0)

我知道这是个老问题,但它可能对仍在使用 Web、Windows Outlook 和 Windows 邮件苦苦挣扎的人有用。

我找到了一种专门从 Windows Outlook 和 Windows 10 邮件应用程序中隐藏元素的方法:

<span style="mso-element:field-begin;"></span>
 Content to hide from Outlook 
<span style="mso-element:field-end;"></span>

参考这个伟大的blog

您也可以将所有 Outlook 应用(移动、网络、桌面)定位为:

<!--[if mso]> 
    <div> Your content that you want visible </div>            
<![endif]-->

您还可以使用其他条件将其反转并针对特定版本, 类似:

<!--[if !mso]> Everything not mso (outlook or windows mail) <![endif]-->
<!--[if gte mso 16]> All mso versions that are greater than 16 <![endif]-->

有关此 link 的更多信息。

至于在 Outlook 的桌面/Windows 版本(邮件应用程序和 Outlook ms)中显示背景图像,您可以使用 VML,有关更多信息,您可以找到 here.