【发布时间】:2019-05-29 15:02:37
【问题描述】:
我正在发送一封 HTML 电子邮件,其中包含由 React.js 生成的内容。在电子邮件的正文中,我必须将客户的图标放在一个 40x40 的单元格中。
有些客户的图标是方形的,看起来不错。其他的或高或宽,Outlook 会扭曲它们以适应 40x40 单元格,这并不酷。
以下是我尝试过的一些方法,以及 Outlook 如何破坏它们:
- 以完整尺寸显示图像(最大高度和最大宽度不起作用):
<table border="0" cellPadding="0" cellSpacing="0" width="40" height="40">
<tbody>
<tr>
<td align="center">
<img
alt=""
border="0"
src={iconUrl}
width="auto"
height="auto"
style={{ display: "block", maxHeight: "40px", maxWidth: "40px" }}
/>
</td>
</tr>
</tbody>
</table>
- 扭曲图像使其成为 40x40 正方形:
<table border="0" cellPadding="0" cellSpacing="0" width="40" height="40">
<tbody>
<tr>
<td align="center">
<img
alt=""
border="0"
src={iconUrl}
width="40"
height="40"
style={{ display: "block", width: "auto", height: "auto", maxHeight: "40px", maxWidth: "40px" }}
/>
</td>
</tr>
</tbody>
</table>
- 以全尺寸显示图像:
<table border="0" cellPadding="0" cellSpacing="0" width="40" height="40">
<tbody>
<tr>
<td align="center">
<img
alt=""
border="0"
src={iconUrl}
style={{ display: "block", maxHeight: "40px", maxWidth: "40px" }}
/>
</td>
</tr>
</tbody>
</table>
-
Outlook 不支持任何
background样式属性,因此不会出现任何内容:
<table border="0" cellPadding="0" cellSpacing="0" width="40" height="40">
<tbody>
<tr>
<td align="center">
<div
style={{
display: "block",
height: "40px",
width: "40px",
backgroundImage: `url(${iconUrl})`,
backgroundSize: "cover",
backgroundRepeat: "no-repeat",
backgroundPosition: "center center",
}}
/>
</td>
</tr>
</tbody>
</table>
- 以全尺寸显示图像:
<table border="0" cellPadding="0" cellSpacing="0" width="40" height="40">
<tbody>
<tr>
<td align="center">
<img
alt=""
border="0"
src={iconUrl}
style={{ display: "block", maxWidth: "40px", maxHeight: "40px", objectFit: "cover" }}
/>
</td>
</tr>
</tbody>
</table>
有什么建议吗?谢谢。
【问题讨论】:
标签: reactjs outlook html-email