Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Outlook.com HTML电子邮件中有条件评论的可靠解决方案_Css_Email_Outlook_Html Email_Email Templates - Fatal编程技术网

Css Outlook.com HTML电子邮件中有条件评论的可靠解决方案

Css Outlook.com HTML电子邮件中有条件评论的可靠解决方案,css,email,outlook,html-email,email-templates,Css,Email,Outlook,Html Email,Email Templates,我在这里和其他地方看到了一种推荐的方法,可以设置有条件的评论来与Outlook.com一起使用,但是由于下面详细介绍的另一个已知问题,我收到了空白电子邮件。参考下面的两个代码示例,我想看看是否有人能够可靠地解决这个问题 第一个例子: <!--[if mso]><!-- --> <style type="text/css"> #learn-left { width: 350px; max-width: 350px; } #learn-right { wid

我在这里和其他地方看到了一种推荐的方法,可以设置有条件的评论来与Outlook.com一起使用,但是由于下面详细介绍的另一个已知问题,我收到了空白电子邮件。参考下面的两个代码示例,我想看看是否有人能够可靠地解决这个问题

第一个例子:

<!--[if mso]><!-- --> 
<style type="text/css">


#learn-left { width: 350px; max-width: 350px; }
#learn-right { width: 165px; max-width: 165px; }


</style>
<!--<![endif]--> 

我还应该注意,我之所以使用此代码是为了与Outlook 2000和2003兼容,因此我不能将媒体查询作为替代解决方案。

那些说你可以这样做的网站是错误的。Outlook.com会吃掉你的条件评论以及其中的任何内容。让我头痛了一阵子


对于需要使用条件注释的内容,我发现最好的方法是使用常规的条件注释部分,但也包括另一个表行/列,或者使用类似
class=“outlookcom”
(在
td
上)之类的类,并使用
display:none
隐藏它。然后,在您的
标记中,您可以使用
ecxoutlookcom
(outlook在所有分类标记前面加上“ecx”)将该隐藏行作为目标,并使用
display:block!重要信息
为outlook.com显示它

感谢OP中给出的提示,我刚刚发现了一个解决“blank outlook.com”问题的潜在方法:双端注释

与此相反:


/*css在这里*/

试试这个


/*css在这里*/


似乎大多数web客户端都会忽略最后一条结束评论(毕竟它仍然是一个有效的评论块),但outlook.com不会,因此您会让所有电子邮件客户端注意到评论部分,而对于outlook.com而言,这意味着没有空白电子邮件。显然,使用时要小心,但从我通过Litmus进行的有限测试来看,它似乎工作得很好。

我尝试过这个,但它对我不起作用。它在屏幕上显示了零散的评论标签

<!--[if !gt mso 9]><!-- -->
/* css here */
<!--<![endif]-->
<!--[endif]-->

/*css在这里*/
这就是我的工作。我在acid上的电子邮件上测试了它。看起来效果很好

<![if !mso]> 

<div>
This shows on all clients but not outlook 2007, 2010, 2013.
Works fine on outlook.com.
</div>

<![endif]>

这显示在所有客户端上,但不是outlook 2007、2010、2013。
在outlook.com上运行良好。



有关详细信息,请尝试搜索“microsoft downlevel Exposed conditional comments”

我不知道使用CSS隐藏/显示是否是最好的方法,因为并非所有电子邮件客户端都会处理/使用该CSS(我在Outlook windows客户端中测试了一个版本,但它不起作用)。我认为Outlook.com使用条件分支的原因是人们使用的语法有点不正确。更正语法后,Outlook.com和Outlook windows客户端中的代码都正确呈现。我还尝试了iphone Outlook应用程序、iphone内置电子邮件应用程序和icloud(web),代码呈现正确

需要注意的一点是,如果您在IIS上使用razor脚本,请确保包装if!元素中的mso,以便IIS知道不将其作为razor脚本处理。以下是我的代码片段:

<!--[if mso]>code to render in the Outlook client<![endif]-->
<text><!if !mso]>code to render in Outlook.com<![endif]></text>

要在Outlook.com中呈现的代码

谢谢。现在试试这个。很高兴听到我不是唯一一个连“修复”都没有条件评论的人。我知道这是一个家庭友好的地方,但现在我真的很想击败整个outlook.com团队,尤其是他们的项目经理。
<!--[if gte mso 9]>

<div>
This only shows on outlook 2007, 2010, 2013
</div>

<![endif]-->
<!--[if mso]>code to render in the Outlook client<![endif]-->
<text><!if !mso]>code to render in Outlook.com<![endif]></text>