HTML Outlook.com 的条件语句
HTML Conditional Statement for Outlook.com
我正在尝试在 HTML 电子邮件模板中使用两个条件语句。这些语句正在测试 MS Outlook 客户端,如果为真,它将呈现图像,否则它将命中下一个语句以测试客户端是否不是 MS Outlook,然后呈现一些单独的 HTML.
<!--[if mso]>
...
<!--<![endif]-->
<!--[if !mso]><!-- -->
...
<!--<![endif]-->
这适用于大多数 Outlook 桌面客户端,但 Outlook 2003、2011 和 2016 (mac) 似乎忽略了 if mso
声明。我在这里遇到的另一个问题是 Outlook.com 似乎也无法识别此声明。
我想知道过去是否还有其他人遇到过这个问题,如果遇到过,他们的解决方案是什么?我想象 if mso
语句会选择任何形式的 Outlook 客户端,但我的假设似乎是错误的。
任何帮助将不胜感激:)
干杯!
Mac 的 Outlook(至少是 2016 版)使用 Webkit 来呈现内容,而不是大多数 Windows 版本的 Outlook 使用的 MS Word 引擎。这里的好消息是你不需要跳过那么多的箍来让它渲染东西 'correctly'。坏消息是这就是 [if mso] 在这里不起作用的原因。
Outlook.com 似乎去除了所有条件,这就是为什么您在那里也看不到图像的原因。
可能不是您想要的新闻,但希望对您有所帮助。
这是我用的:
在 html 中输入:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
在CSS中:
#outlook a{
padding:0;
}
.ReadMsgBody{
width:100%;
}
body{
width:100% !important;
min-width:100%;
-webkit-text-size-adjust:100%;
-ms-text-size-adjust:100%;
}
.ExternalClass{
width:100%;
}
td{
border-collapse:collapse !important;
}
v*{
behavior:url(#default#VML);
display:inline-block;
}
.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{
line-height:100%;
}
并在 html 的 BODY 中包装任何条件规则,我使用:
<!--[if gte mso 9]>
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" SOME OTHER RULES">
<v:textbox inset="0,0,0,0">
<![endif]-->
<table>Some other HTML elements</table>
<!--[if gte mso 9]>
</v:textbox>
</v:rect>
<![endif]-->
我正在尝试在 HTML 电子邮件模板中使用两个条件语句。这些语句正在测试 MS Outlook 客户端,如果为真,它将呈现图像,否则它将命中下一个语句以测试客户端是否不是 MS Outlook,然后呈现一些单独的 HTML.
<!--[if mso]>
...
<!--<![endif]-->
<!--[if !mso]><!-- -->
...
<!--<![endif]-->
这适用于大多数 Outlook 桌面客户端,但 Outlook 2003、2011 和 2016 (mac) 似乎忽略了 if mso
声明。我在这里遇到的另一个问题是 Outlook.com 似乎也无法识别此声明。
我想知道过去是否还有其他人遇到过这个问题,如果遇到过,他们的解决方案是什么?我想象 if mso
语句会选择任何形式的 Outlook 客户端,但我的假设似乎是错误的。
任何帮助将不胜感激:)
干杯!
Mac 的 Outlook(至少是 2016 版)使用 Webkit 来呈现内容,而不是大多数 Windows 版本的 Outlook 使用的 MS Word 引擎。这里的好消息是你不需要跳过那么多的箍来让它渲染东西 'correctly'。坏消息是这就是 [if mso] 在这里不起作用的原因。
Outlook.com 似乎去除了所有条件,这就是为什么您在那里也看不到图像的原因。
可能不是您想要的新闻,但希望对您有所帮助。
这是我用的:
在 html 中输入:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
在CSS中:
#outlook a{
padding:0;
}
.ReadMsgBody{
width:100%;
}
body{
width:100% !important;
min-width:100%;
-webkit-text-size-adjust:100%;
-ms-text-size-adjust:100%;
}
.ExternalClass{
width:100%;
}
td{
border-collapse:collapse !important;
}
v*{
behavior:url(#default#VML);
display:inline-block;
}
.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{
line-height:100%;
}
并在 html 的 BODY 中包装任何条件规则,我使用:
<!--[if gte mso 9]>
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" SOME OTHER RULES">
<v:textbox inset="0,0,0,0">
<![endif]-->
<table>Some other HTML elements</table>
<!--[if gte mso 9]>
</v:textbox>
</v:rect>
<![endif]-->