我正在尝试制作时事通讯,其中我有一些图像作为背景和文字。这很容易,但我需要这个工作Ms Outlook
。
我尝试过:
1
<td width="100" height="100" style="background: url('someurl');">text</td>
2
<td width="100" height="100" background="someurl">text</td>
3
<td width="100" height="100">
<div style="width: 0px; height:0px; position: relative;">
<div style="width: 100px; height: 100px; position: absolute; background: url('someurl')">
text
</div>
</div>
</td>
但是前景没有任何效果。我不知道如何解决它。我正在使用outlook 2007.
任何帮助都将不胜感激。
答案 0 :(得分:24)
“防弹电子邮件背景图片”的强大工具(适用于Outlook 2007/2010/2013的VML,适用于Outlook 2000/2003,Gmail,Hotmail的HTML / CSS ...)
作为例子:
<div style="background-color:#f6f6f6;">
<!--[if gte mso 9]>
<v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="t">
<v:fill type="tile" src="http://i.imgur.com/n8Q6f.png" color="#f6f6f6"/>
</v:background>
<![endif]-->
<table height="100%" width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top" align="left" background="http://i.imgur.com/n8Q6f.png">
</td>
</tr>
</table>
</div>
为了将指定的背景图像设置为完整的电子邮件正文。
此链接有助于使用矢量标记语言(VML)
答案 1 :(得分:15)
您无法将背景图片添加到要在Outlook中查看的html
简报中。它不会工作,因为他们忽略了财产。
您只能在文字后面使用块颜色(background-color
)。
Outlook不支持以下CSS:
azimuth
background-attachment
background-image
background-position
background-repeat
border-spacing
bottom
caption-side
clear
clip
content
counter-increment
counter-reset
cue-before, cue-after, cue
cursor
display
elevation
empty-cells
float
font-size-adjust
font-stretch
left
line-break
list-style-image
list-style-position
marker-offset
max-height
max-width
min-height
min-width
orphans
outline
outline-color
outline-style
outline-width
overflow
overflow-x
overflow-y
pause-before, pause-after, pause
pitch
pitch-range
play-during
position
quotes
richness
right
speak
speak-header
speak-numeral
speak-punctuation
speech-rate
stress
table-layout
text-shadow
text-transform
top
unicode-bidi
visibility
voice-family
volume
widows
word-spacing
z-index
来源:http://msdn.microsoft.com/en-us/library/aa338201.aspx
更新 - 2015年7月
我认为最好更新此列表,因为它偶尔得到奇怪的upvote - 这里提供了一个指向当前电子邮件客户端支持的绝佳链接:https://www.campaignmonitor.com/css/
答案 2 :(得分:7)
后台可以在Outlook中使用,但只能在电子邮件的<body>
标记中使用。它不适用于个人<td>
,只适用于整个电子邮件。
更新:或者你可以use the VML method允许你 将背景图像添加到Outlook中的各个页面元素。
这适用于大多数客户端,包括Outlook:
<body style="background-image: url('img.jpg');">
<table width="100%" background="img.jpg">
以下是适用于所有主要电子邮件客户端(包括Outlook)的完整代码。它具有背景图像集,在100%宽度表中回退到背景。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
<body style="margin: 0px; padding: 0px; background-image: url('http://lorempixel.com/output/food-q-c-100-100-7.jpg'); background-color: #0D679C; background-position: top center;" bgcolor="#0D679C">
<!-- BODY FAKE PANEL -->
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" background="http://lorempixel.com/output/food-q-c-100-100-7.jpg">
<tr>
<td>
<!-- CENTER FLOAT -->
<table width="800" border="0" valign="top" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td height="1000" align="center" valign="middle">
Center panel
</td>
</tr>
</table>
<!-- /CENTER FLOAT -->
</td>
</tr>
</table>
<!-- /BODY FAKE PANEL -->
</body>
</html>
答案 3 :(得分:1)
我能够做到这一点的唯一方法是通过此代码(TD表)。我在Outlook客户端2010中进行了测试。我还通过webmail客户端进行了测试,它适用于两者。
您唯一需要做的就是更改your_image.jpg(对于同一图像有两个这样的实例,请确保为代码更新)和#your_color。
<td bgcolor="#your_color" background="your_image.jpg">
<!--[if gte mso 9]>
<v:image xmlns:v="urn:schemas-microsoft-com:vml" id="theImage" style='behavior: url(#default#VML); display:inline-block; position:absolute; height:300px; width:600px; top:0; left:0; border:0; z-index:1;' src="your_image.jpg"/>
<v:shape xmlns:v="urn:schemas-microsoft-com:vml" id="theText" style='behavior: url(#default#VML); display:inline-block; position:absolute; height:300px; width:600px; top:-5; left:-10; border:0; z-index:2;'>
<![endif]-->
<p>Text over background image.</p>
<!--[if gte mso 9]>
</v:shape>
<![endif]-->
</td>
答案 4 :(得分:1)
您可以使用以下代码:
<!--[if gte mso 9]>
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false"
style="width: 700px; height: 460px;">
<v:fill type="tile" src="images/feature-background-01.png" color="#333333" />
<v:textbox inset="0,0,0,0">
<![endif]-->
注意:将此代码包括在需要背景图片的表格上方。另外,在表格的结束标记后添加下面提到的结束标记。
<!--[if gte mso 9]>
</v:textbox>
</v:rect>
<![endif]-->
答案 5 :(得分:0)
并非所有HTML和CSS都受Microsoft Office产品支持,尤其是Outlook;在支持的元素上使用look here for reference,以便在呈现HTML时在Outlook中使用和不能使用。
具体来说,从该链接开始,它没有说明background
元素支持div
CSS属性。您可能必须使用img
并执行一些hacky分层。
请注意,在您的第二个示例中,您的报价不匹配,这对任何报价都没有帮助。
最后,我刚刚在提供的链接中遇到的是Outlook HTML and CSS Validator too l - 您可以尝试针对您的简报标记运行,并查看它是否为您提供了任何建议/替代方案。
答案 6 :(得分:0)
几个月前我在为公司工作的所见即所得电子邮件编辑器时遇到了这个问题。 Outlook仅支持背景图像,如果它们应用于<body>
标记 - 任何其他元素,它将失败。
最后,我找到的唯一解决方法是使用<div>
元素进行文本输入,然后在内容提交过程中,我将带有<div>
内容的AJAX请求发送到PHP脚本它将文本写入我们的标题图像的空白版本,保存文件并返回其(唯一生成的)名称。然后我使用Javascript删除<div>
并使用<img>
属性中返回的文件名添加src
标记。
您可以从PHP Docs site的imagecreatefrompng()
页面获取所有信息/方法。
答案 7 :(得分:0)
Outlook不支持背景图像。 您必须使用图像并使用相对位置或绝对位置将其放置在文本后面。
答案 8 :(得分:0)
答案 9 :(得分:0)
您只能在body标签或表格中使用它。像这样:
<table width="100%" background="YOUR_IMAGE_URL" style="STYLES YOU WANT (i.e. background-repeat)">
这对我有用。