您遇到问题的原因很可能是由于“防弹”选项的包含 VML 对象使用:
<v:textbox>
VML 中的文本框只应包含非 VML 元素,即您不能在文本区域中为形状放置另一个形状。
<v:rect>
<v:textbox>
<v:roundrect>
</v:roundrect>
</v:textbox>
</v:rect>
这是您当前拥有的非常粗略的表示,使用上面的逻辑被认为是无效的。
您可以做的是让一个 VML 图像保存您的背景图像,该图像位于包含您的内容和按钮的 HTML 区域的后面。
<table width="640" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="position:relative;">
<!--[if gte mso 9]>
<v:image src="...yourbackgroundimage.jpg" style="position:absolute;top:0;left:0;z-index:-1;"
<![endif]-->
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
your content here, including your VML button
</td>
</tr>
</table
</td>
</tr>
</table>
这种方法有一些严重的不灵活,但它几乎是唯一的分层 VML 对象的方法,而不必大惊小怪地使用
<v:group>
请注意,当在 VML 元素上使用负 z-index 并在电子邮件正文上使用背景色时,图像将位于背景色后面:|
希望这会有所帮助。
编辑:
只是为了参考提到的另一点,堆叠背景图像。如果出于某种原因您想要堆叠多个 .png,或者说例如在背景图像上放置一个圆形,您希望在该背景图像上叠加文本。您可以在顶部堆栈中添加多个图像:
<table width="640" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="position:relative;">
<!--[if gte mso 9]>
<v:image src="...yourbackgroundimage.jpg" style="position:absolute;top:0;left:0;z-index:-1;" />
<v:image src="...yourroundel.jpg" style="position:absolute;top:0;left:0;z-index:-2;" />
<![endif]-->
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
your content here, including your VML button
</td>
</tr>
</table
</td>
</tr>
</table>