2012-03-27 90 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/)也將爲您提供一個模板,你可以開始,它會教你如何以避免許多電子郵件客戶端的很多常見缺陷。

相關問題