这是我用来隐藏和显示内容的 html 电子邮件。基本的、易于理解的“移动”和“桌面”类。'Mobile' 仅适用于移动设备。“桌面”仅用于桌面显示。
*[class=mobile]{display:none;}
@media only screen and (max-width:600px) {
*[class=desktop]{display:none !important;}
*[class=mobile]{display:block !important;width:auto !important;max-height:inherit !important;overflow:visible !important;float:none !important;}
*[class="block"]{display:block !important;padding:5px;}
}
但是,如果您希望在 Outlook 和 Gmail 中让您的电子邮件能够像您希望的那样工作,那么您必须走得更远一些。无论如何,这些电子邮件客户端都将显示桌面版本。但是您不希望他们显示移动内容,因此将所有移动内容包装在下面示例中显示的条件注释中。这将为您介绍 Outlook。
要让 Gmail 正常运行,您需要将所有元素归零并在 CSS 中扩展它们,无论如何 Gmail 将完全忽略这些元素。您不希望 Gmail 显示的所有内联内容都应该是 width: 0;max-height: 0;overflow: hidden;
这就是 CSS(上面的示例)发挥作用的时候。媒体查询中的第二个类声明将您的块扩展为适合在移动设备上显示的大小,而 Gmail 将其隐藏。
<!--[if !mso]><!-->
<td class="mobile" style="width: 0;max-height: 0;overflow: hidden;">
<img alt="" border="0" src="http://www.placehold.it/150x150" style="display:block;" width="100%">
</td>
<!--<![endif]-->
最后但并非最不重要的一点是,这最后一部分尚未经过测试。我一直无法让 Windows Mobile 隐藏我希望它隐藏的内容。我认为详细说明我的条件注释包装将通过将其更改为这样来解决问题:
<!--[if !mso]><!--><![if !IEMobile]>
<td class="mobile" style="width: 0;max-height: 0;overflow: hidden;">
<img alt="" border="0" src="http://www.placehold.it/150x150" style="display:block;" width="100%">
<![endif]><!--<![endif]-->
但同样,这最后一部分我还没有测试过,实际上明天会测试,但如果有人想详细说明 Windows Mobile,请做。我已经彻底测试过的所有其他内容。