当使用PHP触发Outlook发邮件时,会有部分CSS限制。
比如当需要实现两个独立的表格 并排显示时。
一般我们会采取,将两个表格 套在一个div盒子里,并设置相关css。
但当你设置好后,outlook发送出的邮件,则不会并排显示。就是因为outlook的一些CSS限制。
此时解决的方法是,
将两个表格都套在另一个大表格中, 并将大表格的边框都取消掉。
两个表格放在同一个<tr>里,用两个<td>分开。
但此时还是会有一些问题出现,由于表格的默认水平垂直居中。
当你两个表格的内容不相同时,会出现,两个表格无法并排显示,影响观感和美观。
这时,可以给两个<td> 加上 style="border: 0px;vertical-align: top;"
就可以让两个内容不相同的表格并排显示。
示例如下(已删减了部分不重要的内容代码)
$css = "<style>table {border: 1px solid blue;border-collapse: collapse} td {text-align: center;font-weight: bolder; border-bottom: 1px solid blue;border-right: 1px solid blue;padding: 1px 2px;}</style>";
//大表格
$body .='<table style="border: 0px;width="100%"">
<tr><td style="border: 0px;vertical-align: top;">';
//第一个表格
$body .='<table border=1;vertical-align: top;width: 100%;><tr><td rowspan="2">姓名</th><td colspan="2">'.$yesterday.'</td></tr>';
$body .=' <tr><td>型号</td><td>类型</td></tr>';
$body .='<tr><td>'.$v['et_version'].'</td><td>'.$v['pre_fixture_type'].'</td></tr>';
$body .='</table>';
$body .='</td>';
//第二个表格
$body .='<td style="border: 0px;vertical-align: top;">';
$body .='<table border=1;vertical-align: top;width: 100%;><tr><td rowspan="2">姓名</td><td colspan="2">'.$beforeYesterday.'</td></tr>';
$body .=' <tr><td>型号</td><td>类型</td></tr>';
$body .='<tr><td>'.$v['et_version'].'</td><td>'.$v['pre_fixture_type'].'</td</tr>';
$body .='</table>';
$body .='</td>';
$body .='</tr>';
$body .='</table>';