HTML电子邮件:!MSO条件技巧
我对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和其他呈现引擎将如何解释这一点。
相关文章