我正在处理包含项目列表的HTML电子邮件,并且考虑到电子邮件客户端的限制,我想知道以下设计是否可行。
目前,我有一个包含两个单元格的项目表(我们称之为item-table
)。第一个单元格(info-cell
)具有可变高度,包含项目信息和链接。第二个单元格(image-cell
)包含图像,并且高度可变。这个问题与第一个细胞有关。
我有一个嵌套在info-cell
中的表,有两行,每行有一个单元格。我们会将这些单元格称为info-cell-top
和info-cell-bottom
。
所需的结果是info-cell-top
与顶部对齐,info-cell-bottom
与info-cell
的底部对齐,无论item-table
的高度如何。
由于这是电子邮件的标记,我无法在rowspan="2"
上使用image-cell
来解决此问题。虽然它适用于某些桌面电子邮件客户端,但对于移动客户端,图像单元格完全消失。
我还尝试使用info-cell
和height="100%"
将内部表格拉伸到height="1"
的完整高度。
这两种解决方案在浏览器中看起来都不错,但不适用于电子邮件。
也可以在 jsfiddle 进行游戏。
<table cellspacing="0" cellpadding="0" border="0" width="100%" style="border-top: 1px solid #bbbbbb;">
<tbody>
<tr>
<td style="padding: 16px 0px; border-bottom: 1px solid #bbbbbb;">
<table cellspacing="0" cellpadding="0" border="0" width="100%" height="1">
<tbody>
<tr>
<td style="vertical-align: top;">
<table cellspacing="0" cellpadding="0" border="0" width="100%" height="100%">
<tbody>
<tr>
<td style="vertical-align: top;">
<strong><a href="#" style="color: #000000; text-decoration: none;">Top aligned</a></strong>
<br>Price
<br>Size
<br>
<br>Wishlist comment - Phasellus sollicitudin consequat consectetur. Morbi a elit leo. Aliquam velit nibh, aliquet quis posuere at, vestibulum nec orci.
</td>
</tr>
<tr>
<td style="vertical-align: bottom;">
<br>
<br> <strong><a href="#" style="color: #000000; text-decoration: none;">Bottom aligned</a>
<a href="#" style="color: #000000; text-decoration: none;">Add to cart</a>
</strong>
</td>
</tr>
</tbody>
</table>
</td>
<td width="120px" valign="bottom" style="padding-left: 16px;">
<div style="text-align: center; background: #ddd; height: 200px;padding: 30px 10px;box-sizing: border-box;"><b>Image with variable height</b>
<br>
<br>(may be shorter than left column)
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
有什么建议我可以做些什么来达到我想要的结果?你能帮忙吗?
答案 0 :(得分:1)
在td中换掉你的CSS vertical-align:top;
:<td valign="top">
。
valign
接受top | middle | bottom值,而align
(水平)接受left | center | right。
对于此布局,您还需要rowspan或固定高度,因为嵌套表(您的2行文本)不会推到容器单元格的最大高度。
以下是valign和rowspan应用的基本示例:
<table width="600" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="400" height="200" valign="top" bgcolor="#EEEEEE">Align Top
</td>
<td width="200" rowspan="2" valign="middle" bgcolor="#777777">
<img alt="image" src="" width="200" height="300" style="margin: 0; border: 0; padding: 0; display: block;">
</td>
</tr>
<tr>
<td width="400" height="300" valign="bottom" bgcolor="#CCCCCC">Align Bottom
</td>
</tr>
</table>
有助于在您的行间隔单元格上设置高度,因为Outlook有时可以猜测并弄乱您的行间断点。关于here的更多信息(尽管它指的是colspan,同样适用)