【发布时间】:2012-04-23 04:07:49
【问题描述】:
我正在接受最终用户的输入并将其插入到 HTML 电子邮件中。但是,如果最终用户输入一个长 URL 或非常长的单词,它会破坏我在 Outlook 2010 中的 HTML 布局,因为它会将列或 div 扩展到指定的宽度之外。
在 Chrome、Firefox、IE7+ 和 Safari 中,我可以使用 style="table-layout:fixed" 将表格列强制为特定宽度。但是 Outlook 2010 忽略了这一点,长字将表格宽度推到了固定宽度之外。
对于 div,在 Chrome、Firefox、IE7+ 和 Safari 中,我可以使用 style="word-wrap:break-word; overflow:hidden; width:100px" 来固定 div 的宽度。但在 Outlook 2010 中,它会将 div 推到固定宽度之外。
我怎样才能让outlook2010换行长字,并遵守固定宽度?
这是我的示例 HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<table width="400" style="table-layout: fixed" border="1">
<tr>
<td width="100">
yo
</td>
<td width="300">
Don't move me
</td>
</tr>
</table>
<table width="400" style="table-layout: fixed" border="1">
<tr>
<td width="100" style="word-wrap: break-word; overflow: hidden; width: 100px" border="1">
yoooooooooooooooooooooooooooooooooooooooooooooooooooooo
</td>
<td width="300">
Ya moved me
</td>
</tr>
</table>
<table width="400" border="1">
<tr>
<td width="100">
<div style="word-wrap: break-word; overflow: hidden; width: 100px" border="1">
yoooooooooooooooooooooooooooooooooooooooooooooooooooooo
</div>
</td>
<td width="300">
Ya moved me
</td>
</tr>
</table>
</body>
</html>
【问题讨论】:
-
一个更简单的解决方案可能是将输入/修剪分割成一定长度的省略号
-
@PaulSullivan 虽然这是一个消息传递解决方案,所以我真的希望将整个消息文本提供给最终用户
-
然后拆分句子 - 我相信 Outlooks 渲染引擎是非基于标准的(并且可能没有关于如何强制它执行你想要的操作的文档 - 谷歌“outlook 2010 html 渲染引擎”
-
您是否尝试过 pre css 属性 - 它可能在 2010 年有所作为?见stackoverflow.com/questions/7284990/…
-
是的,这就是我推动你做的事情——它可能不优雅或不聪明,但它可以完成工作。
标签: html html-email outlook-2010