2012-03-27 34 views
5

我想样式化邮件正文。我已经尝试了下面的方法来设计邮件正文的样式。但他们都没有工作如何在php中设置邮件正文样式

1)使用外部样式表 的style.css

td{padding:10px;} 

mail.php

<link rel="stylesheet" href="style.css"></link><table><td>....</td></table> 

2)定义的内部样式表:

mail.php

<style type="text/css"> 
td{ 
    padding-bottom:8px; 
} 

</style> 
<table><td>....</td></table> 

我知道,内嵌式的工作原理是这样做<td style='padding-bottom:8px'>,但是我有很多表,在做内联样式是不是一个好主意,有什么解决办法,从而无需定义风格的每个元素

+1

电子邮件客户端非常非常挑剔他们将会呈现什么样的CSS内容。你最好的选择是找到关于电子邮件样式的综合指南(希望我能想到一个关于我的头顶的链接,但我不能)。 – Corbin 2012-03-27 05:20:09

+1

我找不到一个。我发现独立的电子邮件客户端对安全性偏执,但至少会呈现大部分HTML。疯狂的东西是当你试图支持免费提供商。 Gmail会剥离背景图片,但留下颜色。 Hotmail将所有背景颜色变为灰色。雅虎做了别的事情。让我想发送一封纯文字电子邮件,上面写着“将此URL复制到您的浏览器”。 – ghoti 2012-03-27 05:33:44

+0

旧版本的outlook将忽略大多数css和现代css positining .. – 2012-03-27 05:40:21

回答

7

对于电子邮件,通常最安全的赌注是表格和内联样式(您在网页设计中不应该做的一切)。

$mailBody = '<html><body>'; 
$mailBody .='<table width="100%"><tr>'; 
$mailBody .='<td style="padding:10px"></td>'; 
$mailBody .='<td style="padding:10px"></td>'; 
$mailBody .='<td style="padding:10px"></td>'; 
$mailBody .='</tr></table>'; 
$mailBody .='</body></html>'; 

令人伤心的内部和外部样式表并不总是适用于不同的电子邮件客户端。

+1

这仍然是真的吗? – Roy 2016-03-31 01:48:13

2

通常表是要走的路。不幸的是,为了获得最广泛的支持,您需要使用内联样式。很多级联,所以你不必风格的每个元素。例如,在table元素上使用font-family会将其应用于td元素。

活动监视器遇到的最常见的电子邮件客户端在这里提供的支持有用的概述CSS http://www.campaignmonitor.com/css/

电子邮件样板(http://htmlemailboilerplate.com/)也将为您提供一个模板,你可以开始,它会教你如何以避免许多电子邮件客户端的很多常见缺陷。

相关问题