在 Microsoft Outlook 中打印时隐藏 HTML 元素



我想在打印时隐藏HTML格式消息中的表格。它有一个class="noprint"属性。其他彬彬有礼的邮件客户端尊重CSS规则和媒体查询,对于它们,我需要做的就是添加一个基本的样式表:

@media print {
     .noprint { display: none; }
}

我从这篇文章中看到Outlook和Word不支持媒体查询。

有谁知道解决方法?

有一个条件的 css 解决方法。将此代码添加到您的主 css 文件中。

<!--[if gte mso 9]>
    <style type="text/css">
        .noprint { display: none; }
    </style>
<![endif]-->

希望这有帮助。

mso-hide:all本身不起作用。它是 Microsoft Word 引擎的供应商特定属性。为了使在桌面上隐藏/在移动设备上显示情况正常工作,您需要其他属性。下面是您需要使用的一些其他属性:

*[class="hide"] {
    max-height:0; /* Gmail*/
    display:none; /* Generic*/
    mso-hide:all; /* Outlook clients*/
    overflow:hidden; /* Generic */
    font-size:0; /* Be careful with this one, only use if absolutely required */
} 

然后在媒体查询中,您希望覆盖设置为与隐藏相反的任何值。

另请注意 mso-hide:all ,如果尝试隐藏包含嵌套表的表单元格中的内容,则必须将此属性应用于其中的任何和所有嵌套表。

最新更新