我在html中有一个条件,该条件应显示特定的td,具体取决于它是通过Outlook桌面还是其他浏览器查看。
<table align="center" role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="margin: auto;">
<tr>
<!--[if !(mso)]>
<td style="background-color: #4400c9; border-radius: 10px 10px 0px 0px;">
<![endif]-->
<!--[if mso]>
<td style="background: url('');">
<![endif]-->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
希望有人可以指出我的状况有什么问题。 谢谢。
答案 0 :(得分:1)
我知道您正在尝试做什么。 需要注意的一件事是,该代码是Outlook特定的,因此您的!mso基本上是在告诉Outlook忽略它包装的代码,而不是在其他电子邮件客户端中显示。
此外,您的非Outlook条件语句应不带mso括号。
像这样:...[if !mso]...
您的!mso隐藏了回退,因此您需要对条件代码进行一些改动。您应该在!mso条件语句的开头和结尾处注意额外的<!--[if !mso]> <!---->
和<!-- <![endif]-->
。
这样做是为了使非Outlook内容在所有其他电子邮件客户端中都不会显示注释,但同时又会将其隐藏在Outlook中。
这里有一些很好的资源可以帮助您掌握这种技术:
1-https://stackoverflow.design/email/base/mso
2-HTML Emails: fallback for mso conditional?
3-https://litmus.com/community/discussions/396-conditional-code-for-outlook
这是代码的外观:
<!-- ### RENDER EVERYWHERE ELSE ### -->
<!--[if !mso]> <!---->
<td>Non Outlook</td>
<!-- <![endif]-->
<!-- ### RENDER IN OUTLOOK ONLY ### -->
<!--[if mso]>
<td>Outlook only</td>
<![endif]-->