HTML电子邮件:!MSO条件技巧

2022-04-05 00:00:00 html-email conditional-statements html

我对HTML电子邮件开发比较陌生,我正在尝试通过分析reallygoodemails.com";上的HTML电子邮件来提高我对HTML电子邮件结构的理解。

在我的尝试中,我遇到了四种不同的方法来为非Microsoft Outlook的电子邮件平台创建条件后备。

版本1。

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
<!--[if !mso]><!-->
  <style>
    .innerTable{
      border: 1px solid black;
    }
  </style>
<![endif]-->

版本2。

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
<!--[if !mso]><!---->
  <style>
    .innerTable{
      border: 1px solid black;
    }
  </style>
<![endif]-->

版本3。

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
<!--[if !mso]><!---->
  <style>
    .innerTable{
      border: 1px solid black;
    }
  </style>
<!--<![endif]-->

版本4。

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
<!--[if !mso]>-->
  <style>
    .innerTable{
      border: 1px solid black;
    }
  </style>
<!--<![endif]-->

谁能告诉我我应该使用哪个版本,并解释为什么那个特定版本实际上可以跨平台工作?比如,您选择的回退的语法是如何诱使MSO忽略代码的?


解决方案

条件注释是微软在Internet Explorer(直到IE9)和Word呈现引擎(由Outlook2007及更高版本使用)中实现的一种机制。我们的想法是通过常规的HTML注释隐藏呈现引擎的内容,这样其他呈现引擎就不会看到它。我将详细介绍我使用的语法,然后再回到您观察到的语法之间的差异。

以下是我用来向Outlook隐藏内容的语法:

<!--[if !mso]><!-->
<style>
    .innerTable{
        border: 1px solid black;
    }
</style>
<!--<![endif]-->

让我们一步一步地打破这一点,看看Outlook和其他呈现引擎将如何解释这一点。

相关文章