chinen

【レスポンシブ(リキッド)HTMLメール】outlookで幅を固定する対処法

HTMLメールを作成する際、レスポンシブやリキッド対応を求められることが多くなりました。

リキッドレイアウトのHTMLメールでは、外側の要素にmax-widthで最大幅の指定をして、中の要素は固定せずにパーセント指定でコーディングすることが多いのではないでしょうか。

しかし、outlookではmax-widthのCSSがサポートされていません!

PCモニターなど大画面で見るとmax-widhtが効かずに100%のまま横いっぱいに伸びてしまい、
センタリングや右寄せにしていた要素が、左寄せのテキストとかなり離れた位置になってしまいます。

outlookでメール表示

こんな感じですね。

そんなoutlookで幅固定をする対処法をご紹介いたします。
 

IEの条件付きコメントの書き方が、outlookにも使えます。

<!--[if gte mso 9]>
====outlookのみ対応====
<![endif]-->

  
下記のように記述することで、
outolookのときだけ幅を固定にすることができます。
(その代わり、outlookではリキッドで可変することはできなくなります。)

<center>
<!--[if gte mso 9]><table width="600" style="margin: 0 auto;"><tr><td><![endif]-->
<div style="max-width: 600px; min-width: 320px; margin: 0 auto;">
<table width="100%">
====メールのコンテンツ====
</table>
</div>
<!--[if gte mso 9]></td></tr></table><![endif]-->
</center>

 
outlook用に、幅を固定したtableの開始タグと、コンテンツの最後には閉じタグを用意し、
それぞれ条件付きコメントで囲みます。
 
・[if gte mso 9]
msoバージョン9以上を対象とする指定です。
 
outolookのバージョンについては下記に記載があります。
Outlook Conditional CSS | Email Design Reference
 
 

※注意点※ 条件付きコメント内の記述をdivにした場合、幅固定が効きません。
<!--[if gte mso 9]><div style="width: 600px; margin: 0 auto;"><![endif]-->
~~~
<!--[if gte mso 9]></div><![endif]-->
↓ tableタグを使いましょう。
<!--[if gte mso 9]><table width="600" style="margin: 0 auto;"><tr><td><![endif]-->
~~~
<!--[if gte mso 9]></td></tr></table><![endif]-->
outlookでは、pタグとdivタグのwidthはサポートされていないようです。 閉じタグの部分も条件付きコメントで記述するのを忘れないようにしましょう。 参考:メーラーのCSSサポート状況 CSS Support Guide for Email Clients

 
 
レスポンシブHTMLメールの作成の注意点については、以前の記事でも紹介されています。
こちらも参考にどうぞ。
レスポンシブHTMLメールを作成する際の覚書 | Tips Note
 
 

新しいウェブ体験を作ろう TAMのPWA開発
お問い合わせはこちら