在开展咱们的项目时,在一些方面,如:注册确认、营销推广等,都须要以给用户发邮件的方式,进行沟通,可是咱们编写的HTML邮件,不少主流邮箱都会或多或少的过滤掉一些东西,因此就要考虑如何编写才是能兼容各类。css
本文原创发表于所问数据HT前端团队:ht.askingdata.com/article/5b9…html
先从总体布局方式提及,常见的两种方式就是iframe和div。 首先iframe它其实已是一个被废弃了,可是在16三、sina等这类邮箱,它是在用iframe的。至于为何会用iframe……前端
第二种布局table,为何要用table代替div缘由以下:html5
由于head里面的内容会被过滤掉的缘由,咱们不要写<style>
标签、不要写class,全部CSS都用style属性,什么元素须要什么样式就用style写内联的CSS。因此说能够的话,就用标签的自带属性,也是比较方便的。table属性是咱们整个邮件的重要部分,因此它的一些自带属性,你们能够去网上搜索一下,都是比较基础的,在这里就不一一列举了。css3
回到样式上,其实直接写内联样式的话,是比较麻烦的,因此,咱们在写样式的时候,能够先以class的方式书写,其后使用:tonny-zhang.github.io/pages/css_f… 将内联样式转换成嵌入样式。git
没法使用@media,主要认为是@media是全局的,而咱们须要改变的东西是局部的,因此说不适合用。 没法引入bootstrap等外联样式,由于上面说过的,它会把head过滤掉,因此说引入了也是没有用的。 至于它不支持大部分CSS3属性,就是不支持,也不知道为何,嘿嘿。 并且它对背景图片的支持也不太理想,还有就是图片要写上alt属性,由于就算图片不出来,至少还有个提示嘛。 若是有比较复杂的布局,不要用float,position之类的,由于也会被过滤,咱们就用table就能够的。github
在项目中会有各类邮件的发送,可是有些产品信息,公司信息是不会改变的,因此说,将邮件封装成模板。bootstrap
<table width="100%" border="0" cellpadding="10" cellspacing="0" bgcolor="#fff" collapse>
<tr>
<td valign="middle" style="color:#333">
<table width="600" cellpadding="0" cellspacing="0" bgcolor="#ffffff" border="0" align="center" class="border-collapse">
……
</table>
</td>
</tr>
</table>
复制代码
总体的大table能够像如上这样写。 对于像字体、间距、行高,咱们可写一个公共类,到时候用前面我给予的网站去转换一下就行了。布局
一个邮件的样子也是很是重要的,它也是项目的一部分,而且做为一个可研究的东西,也是很是有价值的。 奋斗吧,猿们。字体