是否有相当于在HTML电子邮件中工作的CSS最大宽度?

我试图创build一个HTML电子邮件,将正确显示在所有广泛使用的电子邮件客户端。 我将整个电子邮件包装在一个表格中,我希望宽度达到可用宽度的98%,但不超过800像素。 像这样: <table style="width:98%; max-width:800px;">

但是我不这样做,因为根据这个 Outlook 2007不支持CSS宽度属性。

相反,我这样做: <table width="98%">

有没有什么办法可以设置最大宽度而不依赖于CSS?

是的,有一种方法可以使用表来模拟max-width ,从而为您提供响应式和Outlook友好的布局。 而且,这个解决scheme不需要有条件的评论。

假设你想要一个max-width350px的居中div的等价物。 您创build一个表格,将宽度设置为100% 。 该表格有三个单元格。 将中心TD的宽度设置为350 (使用HTML width属性,而不是CSS),然后就可以了。

如果你想让你的内容左alignment,而不是居中,只是省略了第一个空单元格。

例:

 <table border="0" cellspacing="0" width="100%"> <tr> <td></td> <td width="350">The width of this cell should be a maximum of 350 pixels, but shrink to widths less than 350 pixels. </td> <td></td> </tr> </table> 

在jsfiddle中,我给了桌子一个边框,这样你就可以看到发生了什么,但显然你不会想要一个在现实生活中:

http://jsfiddle.net/YcwM7/

有一个技巧,你可以使用有条件的html注释为Outlook 2007做。
下面的代码将确保Outlook表格是800px宽,它不是最大宽度,但它比让表跨越整个窗口更好。

 <!--[if gte mso 9]> <style> #tableForOutlook { width:800px; } </style> <![endif]--> <table style="width:98%;max-width:800px"> <!--[if gte mso 9]> <table id="tableForOutlook"><tr><td> <![endif]--> <tr><td> [Your Content Goes Here] </td></tr> <!--[if gte mso 9]> </td></tr></table> <![endif]--> <table> 

简短的回答:不。

漫长的回答:

固定格式对HTML电子邮件更好。 根据我的经验,假设它是1999年的HTML电子邮件最好的。 明确地使用HTML属性(width =“650”),尽可能在你的表定义中使用,而不是CSS(style =“width:650px”)。 使用固定的宽度,没有百分比。 宽度为650像素的桌子是一个安全的赌注。 使用内联CSS设置文本属性。

这不是什么在“HTML电子邮件”中起作用的问题,而是大量的电子邮件客户端及其有限的(有时故意在Gmail,Hotmail等情况下)呈现HTML的能力。

晚会晚了,但这将完成。 我把这个例子留在了600,这是大多数人会用到的:

类似于Shay的例子,除此之外, 还包括支持其他客户端的最大宽度 ,以及防止Outlook'11需要的扩展(媒体查询)的第二种方法。

在头上:

  <style type="text/css"> @media only screen and (min-width: 600px) { .maxW { width:600px !important; } } </style> 

在身体里:

 <!--[if (gte mso 9)|(IE)]><table width="600" align="center" cellpadding="0" cellspacing="0" border="0"><tr><td><![endif]--> <div class="maxW" style="max-width:600px;"> <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td> main content here </td> </tr> </table> </div> <!--[if (gte mso 9)|(IE)]></td></tr></table><![endif]--> 

以下是另一个正在使用的示例: 针对移动设备的响应式订单确认电子邮件?

这是为我工作的解决scheme

https://gist.github.com/elidickinson/5525752#gistcomment-1649300 ,感谢@ philipp-klinz

 <table cellpadding="0" cellspacing="0" border="0" style="padding:0px;margin:0px;width:100%;"> <tr><td colspan="3" style="padding:0px;margin:0px;font-size:20px;height:20px;" height="20">&nbsp;</td></tr> <tr> <td style="padding:0px;margin:0px;">&nbsp;</td> <td style="padding:0px;margin:0px;" width="560"><!-- max width goes here --> <!-- PLACE CONTENT HERE --> </td> <td style="padding:0px;margin:0px;">&nbsp;</td> </tr> <tr><td colspan="3" style="padding:0px;margin:0px;font-size:20px;height:20px;" height="20">&nbsp;</td></tr> </table>