広く使用されているすべての電子メールクライアントで適切に表示されるHTML電子メールを作成しようとしています。メール全体を表にラップしています。使用可能な幅の最大98%で、800ピクセル以下の幅にしたいと思います。このような:<table style="width:98%; max-width:800px;">
これによると Outlook 2007はCSSのwidthプロパティをサポートしていないため、私はそのようにはしていません。
代わりに、私はこれをやっています:<table width="98%">
CSSに依存せずにmax-widthも設定する方法はありますか?
はい、テーブルを使用してmax-width
をエミュレートする方法があります。そのため、レスポンシブでOutlookに優しいレイアウトを提供できます。さらに、このソリューションは条件付きコメントを必要としません。
max-width
of 350px
の中央のdiv
と同等のものが必要だとします。テーブルを作成し、幅を100%
に設定します。テーブルには、3つのセルが連続しています。中央の幅をTD
に350
に設定します(CSSではなく、HTML width
属性を使用します)。
コンテンツを中央揃えではなく左揃えにする場合は、最初の空のセルを省略します。
例:
<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で、テーブルに境界線を付けて、何が起こっているかを確認できるようにしますが、実生活では必要ないことは明らかです。
条件付きHTMLコメントを使用してOutlook 2007で実行できるトリックがあります。
次のコードは、Outlookテーブルの幅が800ピクセルであることを確認します。最大幅ではありませんが、ウィンドウ全体にテーブルを広げるよりもうまく機能します。
<!--[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メールでより適切に機能します。私の経験では、HTML電子メールに関しては1999年のふりをするのが一番です。 CSS(style = "width:650px")ではなく、テーブル定義で可能な限り明示的にHTML属性(width = "650")を使用してください。固定幅を使用し、パーセンテージは使用しません。幅650ピクセルのテーブル幅が安全です。テキストプロパティを設定するには、インラインCSSを使用します。
「HTMLメール」で何が機能するかという問題ではなく、HTMLをレンダリングするメールクライアントの数が多く、GmailやHotmailなどの場合には意図的に制限されている場合があります。
パーティーに少し遅れましたが、これで終わりです。ほとんどの人が使用するものであるので、私は600で例を残しました:
Shayの例と似ていますが、これはには、サポートがある残りのクライアントで動作するmax-widthと、 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]-->
使用中のこの別の例は次のとおりです。 モバイルデバイスの応答注文確認メール?
これは私のために働いた解決策です
https://Gist.github.com/elidickinson/5525752#gistcomment-16493 、おかげで @ 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"> </td></tr>
<tr>
<td style="padding:0px;margin:0px;"> </td>
<td style="padding:0px;margin:0px;" width="560"><!-- max width goes here -->
<!-- PLACE CONTENT HERE -->
</td>
<td style="padding:0px;margin:0px;"> </td>
</tr>
<tr><td colspan="3" style="padding:0px;margin:0px;font-size:20px;height:20px;" height="20"> </td></tr>
</table>