Windows live mail将所有表放在一行中,而不是放在另一行之下


Windows live mail places all tables in 1 row, instead beneath eachother

编辑:添加如下示例。

我有以下代码(例如简化),我作为时事通讯发送:

<table width="700">
    <tr>
        <td width="700"><!-- Really trying to set 700 as max) -->
            <table width="700"> <!-- simple table content, not bigger than 700 --></table>
            <table width="350"> <!-- simple table content, not bigger than 350 --></table>
            <table width="350"> <!-- simple table content, not bigger than 350 --></table>
        </td>
    </tr>
</table>

预期结果:
[------ table 700 ------]
[ table 350 ][ table 350 ]

Windows Live Mail:(在Mac的邮件中正常工作)
[------ table 700 ------][ table 350 ][ table 350 ]

它都在一行中,尽管换行TD和表被设置为700,我希望它从新的行开始。

我不能添加断点,这是动态代码,我有更多的部分,我不知道代码中哪一行是最后一个。

我找不到关于这个的主题,除了"开始发送邮件,用表"——新手的解决方案。

有人知道吗?

问题/解决方案是使用align="left"。任何具有align=left的表都将有下一个表粘附在它上面。首选结果示例:

[---- 100 ----]
[--50--][--50--]
[25][25][25][25]

如果所有这些表都有align="left",它将导致一个长行:

[---- 100 ----][--50--][--50--][25][25][25][25]

我从第一个表中删除了align=left,结果如下:

[---- 100 ----]
[--50--][--50--][25][25][25][25]

我不能从其他表中删除align=left,因为我想要那些内联块。为了正确地获得它们,我在代码中添加了一个"分裂"。拆分表是一个没有align=left和高度的表。所有的表都有align=left,除了split:

[---- 100 ----](split)
[--50--][--50--](split)
[25][25][25][25]

添加style="display:block;"到top table

然而,你最好把它们放在自己的<td>中,而不是在那里浮动/对齐。

:

<table width="700" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#eeeeee">
      ...
    </td>
  </tr>
  <tr>
    <td>
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="350" bgcolor="#cccccc">
            ...
          </td>
          <td width="350" bgcolor="#dddddd">
            ...
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

这里有一个类似的问题/答案,解释了另一个问题,你可能会面对像你这样对齐表。

如果你想去响应,你可以使用<td> 's与display:block;代替,使他们'弹出'当媒体查询触发。例子