總結回顧css
郵件內容所在上下文或者說所在外部容器(如下簡稱環境)都是由郵箱服務商決定的,不一樣的郵件服務商對前端樣式佈局支持都存在在一些差異。這就要求郵件內容須要在任何一種狀況下都要正常兼容顯示。html
你寫的郵件前端代碼可能被放在一個iframe中,那你的內容是被放在body裏面的;可能放在一個div中,你的內容就被放在這個div裏面。前端
郵箱軟件自己設置設置了些css,他可能對你產生未知的影響。可能根本沒有申明doctype,即便申明瞭,也不是你想要的doctype。web
由於容器多是body或div,咱們郵件內容不該該是一個完整的html。因此郵件內容應該是以div爲根節點的html片斷。面試
咱們寫的郵件代碼在不用的郵件服務商下,對應的外部容器不太同樣。數組
QQ郵箱:本身編寫的內容被嵌套在一個div中bash
outlook郵箱:本身編寫的內容不知道被嵌套什麼元素裏了,它自己的元素加上我編寫的元素被混在一塊兒了 其餘的郵箱大家能夠本身測試一下一個文檔類型標記是一種標準通用標記語言的文檔類型聲明,它的目的是要告訴標準通用標記語言解析器,它應該使用什麼樣的文檔類型定義(DTD)來解析文檔。函數
兼容性最好的Doctype是XHTML 1.0 Strict,事實上Gmail和Hotmail會刪掉你的Doctype,換上這個Doctype。使用這個Doctype,也就意味着,不能使用HTML5的語法。佈局
網頁的佈局(layout)必須使用表格(table)。首先,放置一個最外層的大表格,用來設置背景。 在內層,放置第二個表格。用來展現內容。第二個table的寬度定爲600像素,防止超過客戶端的顯示寬度。 post
錯誤的寫法
<div style="font: 8px/14px Arial, sans-serif; margin: 1px 0;">
推薦寫法
<div style="margin-top: 1px; margin-bottom: 1px; margin-left: 0; margin-right: 0;">
複製代碼
全部的CSS規則,最好都採用行內樣式。由於放置在網頁頭部的樣式,極可能會被客戶端刪除。客戶端對CSS規則的支持狀況 另外,不要採用CSS的簡寫形式,有些客戶端不支持。由於環境中可能已經設置了css,好比一些reset、一些.class。 因此咱們只能使用行內style來確保咱們的效果,而且在內容根節點上設置基礎style,而且儘可能使用div、span等無語義標籤。
<img border="0" style="display:block; outline:none; text-decoration:none; -ms-interpolation-mode: bicubic; border:none;">
複製代碼
圖片是惟一能夠引用的外部資源。其餘的外部資源,好比樣式表文件、字體文件、視頻文件等,一律不能引用。 有些客戶端會給圖片連接加上邊框,要去除邊框。 須要注意的是,很多客戶端默認不顯示圖片(好比Gmail),因此要確保即便沒有圖片,主要內容也能被閱讀。
圖片是惟一能夠引用的外部資源。其餘的外部資源,好比樣式表文件、字體文件、視頻文件等,一律不能引用。 有些客戶端會給圖片連接加上邊框,要去除邊框。 須要注意的是,很多客戶端默認不顯示圖片(好比Gmail),因此要確保即便沒有圖片,主要內容也能被閱讀。
客戶端:foxmail outlook QQ郵箱 爲了應付Email的怪癖,花了不少時間測試,確保搞定了全部Outlook的坑窪溝洄 可是....仍是不可避免有兼容問題 若是你只要兼容 Foxmail and qq郵箱,那你幾乎能夠像寫web同樣寫郵件。 因爲郵件客戶端對css支持各有不一樣,因此必定要多測試再發送,保證樣式的正確。若是出現了不兼容的狀況,必定要耐心的使用最簡單的方式進行兼容,儘可能少用特殊標籤及比較複雜的屬性。
來源:團隊平常總結分享