4

在开发 html 电子邮件通讯时,我经常使用类似于以下的结构:

<table width="244" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffcc">
<tr>
  <td>
        <table border="0" align="left">
        <tbody>
        <tr>
              <td bgcolor="#FFCCCC">text in the table cell.<br>and another line of text.<br>and a third line.</td>
        </tr>
        </tbody>
        </table>
Hello. This is sample text. This is another sentence. Hello. This is sample text. This is another sentence. Hello. This is sample text. This is another sentence.</td>
</tr>

在浏览器中查看时,结果如下所示:

在浏览器中查看

但是当由 Outlook 2013 呈现时,主(黄色)表中最左边的文本被截断:

由 Outlook 2013 呈现

对此有解释或解决方法吗?

(我通常会在内部(粉红色)表格中放置一个图像而不是文本。这允许主要(黄色)文本似乎围绕图像流动的设计。无论是图像还是文本,结果都是相同的。主(黄色)表中的文本被截断,如此处所示。)

4

3 回答 3

5

尝试在标题表上设置左对齐,在我的代码中这将适用于所有客户端。针对所有客户进行了试金石测试:

<table cellspacing="0" cellpadding="0" width="560" align="left" border="0">
<tbody>
    <tr>
        <td align="left">   
            <table cellspacing="0" cellpadding="0" align="left">
                <tbody>
                    <tr>
                        <!-- spacer for the top of the image -->
                        <td align="left" colspan="2">
                            <img src="spacer.gif" height="5" alt="spacer" style="display:block; margin:0px; border:0px;" align="left" />
                        </td>
                    </tr>
                    <tr>
                        <!-- the image or text -->
                        <td align="left">
                            <img src="imagesrc" alt="imagealt" style="display:block; margin:0px; border:0px;" />
                        </td>

                        <!-- spacer for the right of the image -->
                        <td align="left">
                            <img src="spacer.gif" width="11" alt="spacer" style="display:block; margin:0px; border:0px;" />
                        </td>
                    </tr>
                    <tr>

                        <!-- spacer for the bottom of the image -->
                        <td colspan="2" align="left">
                            <img src="spacer.gif" height="11" alt="spacer" style="display:block; margin:0px; border:0px;" />
                        </td>
                    </tr>
                </tbody>
            </table>

            <!-- here your tekst -->
            <div style="margin:0px; padding:0px; mso-line-height-rule: exactly; color:#000000; font-family:Verdana, Arial; font-size:12px; line-height:20px; display:block;">Hello. This is sample text. This is another sentence. Hello. This is sample text.</div>
        </td>
    </tr>
</tbody>
</table>
于 2013-03-26T12:49:45.167 回答
1

有时接受的解决方案(添加align= "left"到标题/父表)不起作用(在我的情况下使用多个嵌套表):

没有修复的左对齐表格

添加mso-table-rspace到左对齐表格确实有效:

带修复的左对齐表

<table border="0" cellpadding="0" cellspacing="0" align="left" style="mso-table-lspace:0pt; mso-table-rspace:7pt;">

于 2016-05-03T12:09:22.877 回答
-3

我不确定 Outlook 2013 有什么问题,但您可以尝试使用 div 结构实现相同的布局

HTML:

<div class="outer">
  <div class="first">text in the table cell.<br>and another line of text.<br>and a third line.</div>
  <div class="second">Hello. This is sample text. This is another sentence. Hello. This is sample text. This is another sentence. Hello. This is sample text. This is another sentence.</div>
</div>

CSS:

.outer {
  width : 50%;
  height : 50%;
  background-color: green;
}

.first {
  background-color: red;
  float : left;
}

.second {
  background-color: yellow;
}

演示链接

于 2013-03-24T19:20:15.433 回答