【问题标题】:Conditional Operator for Email Client not working电子邮件客户端的条件运算符不起作用
【发布时间】:2019-10-06 09:13:12
【问题描述】:

我在 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%">

编辑: 这是我得到的结果。

希望有人能指出我的情况有什么问题。 谢谢。

【问题讨论】:

    标签: html outlook


    【解决方案1】:

    我明白你想在那里做什么。 需要注意的一点是,该代码是特定于 Outlook 的,因此您的 !mso 基本上是在告诉 Outlook 忽略它所包含的代码,而不是显示在其他电子邮件客户端中。

    此外,您的非 Outlook 条件语句不应在 mso 周围加上方括号。 像这样:...[if !mso]...

    您的 !mso 隐藏了回退,因此您需要包含条件代码的轻微变化。您应该注意 !mso 条件语句开头的额外 &lt;!--[if !mso]&gt; &lt;!----&gt; 和末尾的 &lt;!-- &lt;![endif]--&gt;
    这样做的目的是允许非 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]-->

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2011-11-06
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 2018-04-24
      相关资源
      最近更新 更多