2011-05-16 76 views
0

我已經在PHP中編寫了一個電子郵件簽名生成器。程序吐出在以下文件格式輸出:電子郵件簽名生成的HTML表在Outlook 2010中垂直拉伸

signature_file.htm

signature_style.css

signature_image_folder

圖像和樣式表被HTM文件內連接。這可以在網頁瀏覽器中查看。

當我將文件複製到以下路徑:

.. \的Documents and Settings \用戶名\應用數據\微軟\簽名\

在Outlook中的簽名經理現身簽名2010年,它看起來很好 - 除了保存所有信息的表格被垂直拉伸之外,字體,圖像等。看起來行高已經擴大到100%。

在靜態指定表格高度的CSS文件中,Outlook似乎正在覆蓋它。

此外,簽名從Outlook加載時,會創建一個* .rtf文件。在rtf內,高度也是錯誤的。

+0

請問您能舉一個例子嗎?使用http://jsfiddle.net/ – jackJoe 2011-05-16 13:51:38

+0

嗨jackJoe,這裏是代碼:http://jsfiddle.net/nk9v5/ – Piotr 2011-05-16 14:02:33

+0

檢查你的代碼後,我真的找不到這種行爲的原因......我什麼建議指定內聯樣式(yes,old-scholl),還要爲每個「​​」指定高度,甚至指定表格內的表格。通常情況下,我不會依賴於HTML電子郵件的鏈接CSS。 – jackJoe 2011-05-16 16:08:26

回答

1

我想通了。

由於某些原因,Outlook不理解佈局樣式,如填充。我不得不擺脫所有高度的行,列等,擺脫所有的填充,只是一個'壓扁'的表,只是其內容大小。然後,我需要一些填充,我只需要

不幸的是,這是沒有任何東西(但知識),因爲最後,我的工作營銷人員告訴我使用不使用表格的醜陋的佈局...對於遺憾! :) 感謝jackJoe所有的幫助! :D

小心, Piotr。

0

好吧,我想我有一些提示,以便你可以解決這個問題。 (正如你現在一定知道的那樣,Outlook在處理html時非常糟糕,即使它沒有意義,它也可以做出最令人髮指的事情)。

所以,我的建議是:

  1. 你的表中有一個定義的高度:

    table#signature_tableheight: 450px;

    您需要刪除的高度! 表格將具有它所需的任何高度 。

  2. 然後,大多數元件具有 padding-toppadding-bottom (例如:th#employee_nameth#employee_position),經由限定的高度 那些元件的<td>嘗試 變化這一點;對於 例如:

    如果你有一個填充底:20像素, 只要確保你的<td>有 足夠的高度(以文本),以 「伸展」它前面的20像素, 像<td height=40>。這需要 進行測試,直到你得到正確的 大小。

  3. 嘗試使用像素代替點, 點的大小較少「可控」;

  4. 請確保您使用內嵌樣式 (如style="font-size: 11px;"),這是一種方式,以確保 正在應用的樣式, 尤其是與電子郵件客戶端 不接受外部CSS(如Gmail, 等)。應用所有樣式並且不要 忘記將字體系列添加到 表(至少)。這是浪費 代碼,但最終它將值得 額外的代碼。

  5. 簡化:不要使用表頭 <th>和其他標籤一樣, (IMO),我只用<tr><td> 就是這樣。我認爲Outlook可以以不預期的方式設計 <th>。 創建html電子郵件意味着你需要 來編碼html和css像你 在1999年,所以不要介意使用 表等。確保代碼 驗證。

+0

您好,感謝您的幫助。不幸的是,我已經應用了所有的建議,但唉,沒有什麼改變。代碼現在驗證,單元格的高度設置爲內聯,沒有填充應用,表格沒有高度設置......仍然是同一件事...... :(我在這一點上絕望了。 – Piotr 2011-05-18 12:28:34

+0

這裏是我所有的當前代碼:http://jsfiddle.net/uWLaP/ – Piotr 2011-05-18 12:33:09

+0

@Piotr你的代碼並不遵循我對使用內聯CSS的建議......它應該將樣式直接應用於標籤,就像這樣'''​​'元素上的高度需要定義爲沒有單位,就像這個''。除非你以內聯方式應用樣式,否則大概繼續有同樣的問題 – jackJoe 2011-05-18 13:20:47