【问题标题】:Outlook 2007/10/13 <style media="print"> work aroundOutlook 2007/10/13 <style media="print"> 解决方法
【发布时间】:2013-06-11 05:55:41
【问题描述】:

我在测试电子邮件营销活动时遇到了一些困扰我的事情。

所以这里是:

我使用以下代码,以便在用户打印电子邮件时不会打印图像和其他一些位(它适用于酒店集团,因此经常打印电子邮件,包括预订号码和所有内容)。

<style media="print">
body { background-color:#FFFFFF; }
.no-print { display:none; }
</style>

现在,outlook 2007/10/13、aol mail 和其他一些客户似乎将自己视为印刷媒体,并对每个非印刷元素应用 display:none 规则,从而使电子邮件处于可怕的空虚状态。

我可以完全删除它,但这对生态来说不是很好的做法。

你们中有人知道解决方法吗? 像迫使 Outlook 将自己视为屏幕媒体的一种方式?

非常感谢。

【问题讨论】:

标签: css media-queries html-email


【解决方案1】:

现在我对这个问题有了更好的理解,我想我为你找到了一个可能的解决方案的开始。这应该确保打印机样式表 CSS 仍然有效,但不会被客户端(如 Outlook 2007)显示,而它们不应该显示。

  • 使用电子邮件“按原样”运行测试,果然 Outlook 2007 是空白的,因为它应用了打印样式表
  • 然后我在下面的代码示例中添加了这个媒体查询
  • Outlook 2007 与其他客户端一起显示,因此它忽略了打印样式表
  • 现在在 Google Chrome 的打印预览中,.no-print 的文本不会显示

代码摘录:

    <style media="print">

        @media only print {
            body { background-color:#FFFFFF; }
           .no-print { display:none; }
         }

    </style>

    </head>

<body >
<h1 class="no-print" style="font-size: 36px">LINE OF TEXT</h1>

邮件测试链接:https://litmus.com/pub/49bfd3b

【讨论】:

  • 这不是真正的问题,问题是outlook会一直渲染打印样式。
  • 对不起,你会看到我完全修改了我的答案并再次尝试。
  • 我不明白 media="print"@media only print 在这种情况下如何协同工作。难道你不能简单地拥有media="only print" 而不将样式放在@media 规则中吗?
  • @BoltClock,你是对的——我只是假设它需要在那里是有原因的。我假设它可能只是使用媒体查询进行打印时很复杂。
  • @RLacorne,您是否出于任何特殊原因需要样式标签?
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多