HTML邮件背景图兼容 Outlook
在 HTML 邮件中设置背景图片时,Outlook(尤其是桌面版的 Outlook for Windows)经常不会正确显示背景图,这是因为outlook 是使用 Word 作为邮件渲染引擎,而不是标准的 HTML/CSS 渲染方式。
推荐的解决方案:使用 VML(Vector Markup Language) 兼容 Outlook
这是针对 Outlook 的专门写法,配合标准写法实现兼容多个客户端:
<tr><td valign="top" width="660" height="664" align="top"background="你的背景图片链接"style="background-image: url('你的背景图片链接'); background-repeat: no-repeat; background-size: 660px 664px; background-position: center; vertical-align: bottom; padding: 0; margin: 0px; text-align: center; background-color: #002329;"><!--[if gte mso 9]><v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:660px;display:block;height:664px;"><v:fill type="frame" src="你的背景图片链接" /><v:textbox inset="0,0,0,0"><![endif]--><table cellpadding="0" cellspacing="0" align="center"></table><!--[if gte mso 9]></v:textbox></v:rect><![endif]--></td>
</tr>
<!--[if gte mso 9]> 和 <![endif]--> 是针对 Outlook 2007 及以上版本的条件注释,只有 Outlook 会读取。
<v:rect> 是 VML(Vector Markup Language)标签,VML 是微软开发的一种矢量标记语言,主要用于早期的 IE 浏览器和 Outlook 中。
xmlns:v="urn:schemas-microsoft-com:vml":定义 VML 的命名空间。
fill="true":表示矩形需要填充。
stroke="false":表示矩形不需要边框。
<v:fill> 用于填充矩形的内容。
type="frame":指定填充类型为框架。
src="https://www.xxxxxxx":指定填充的图片来源,即使用该链接的图片作为矩形的背景。
<v:textbox> 用于在 VML 图形中添加文本框。
inset="0,0,0,0":设置文本框的内边距为 0。
在 Outlook 中,由于其使用的渲染引擎的特殊性,普通的 CSS 背景图片设置可能无法正常显示,
因此使用 VML 来实现背景图片的兼容显示。
在使用 VML为 Outlook 兼容背景图时,对图片格式有一定要求
VML 目前能够很好地支持 JPEG 、PNG格式的图片,但如果要使用PNG格式图片需要以下设置:
<head><!--[if gte mso 9]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
</head>
<xml> 标签用于包裹 XML 代码。
<o:OfficeDocumentSettings> 是一个 XML 命名空间的标签,用于设置 Office 文档的相关设置。
<o:AllowPNG/>:允许在文档中使用 PNG 格式的图片。在早期的 Outlook 版本中,默认可能不支持 PNG 图片,通过这个设置可以确保 PNG 图片能够正常显示。
<o:PixelsPerInch>96</o:PixelsPerInch>:设置文档的每英寸像素数为 96,这是标准的屏幕分辨率,确保图片和文本在屏幕上的显示效果符合预期。