HTML 이메일에서 작동하는 CSS max-width에 해당하는 것이 있습니까?


114

널리 사용되는 모든 이메일 클라이언트에서 제대로 표시되는 HTML 이메일을 만들려고합니다. 전체 이메일을 표로 포장하고 있으며 너비가 사용 가능한 너비의 최대 98 %이지만 800 픽셀을 넘지 않도록하고 싶습니다. 이렇게 : <table style="width:98%; max-width:800px;">

하지만 Outlook 2007 에 따르면 CSS 너비 속성을 지원하지 않기 때문에 그렇게 하지 않습니다.

대신 다음과 같이합니다. <table width="98%">

CSS에 의존하지 않고 최대 너비를 설정하는 방법이 있습니까?


1
@MarkNugent의 답변에 대한 동의를 얻었 기 때문에 동의를 얻은 것으로 보이므로 4 년이 늦어 져서 나에게 유용하지 않은 경우에도 답변을 업데이트했습니다. :)
Tim Goodman

답변:


224

예, max-width표를 사용하여 에뮬레이션하는 방법이 있으므로 반응 형 및 Outlook 친화적 인 레이아웃을 모두 제공합니다. 또한이 솔루션에는 조건부 주석이 필요하지 않습니다.

당신이 중심에 해당한다고 가정 div으로 max-width의를 350px. 테이블을 만들고 너비를 100%. 테이블에는 세 개의 셀이 연속되어 있습니다. 가운데 너비 TD350( widthCSS가 아닌 HTML 속성을 사용하여 ) 설정하면됩니다.

콘텐츠를 가운데가 아닌 왼쪽으로 정렬하려면 첫 번째 빈 셀을 생략하십시오.

예:

<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/


18
바로 여기 여러분의 정답입니다 ^^. 수락 된 답변과 조건부 답변을 무시하십시오.
Nick Manning

4
다른 사람의 시간을 절약하려면 빈 <td> 요소 중 하나 이상이 필요합니다. 그렇지 않으면 콘텐츠가있는 <td>가 전체 <tr>을 채울 수 있습니다. 그러나 이것은 분명히 제공되는 솔루션 중 최고의 솔루션입니다.
Chris Strickland

2
@Phyllis Sutherland 인라인 img 크기를 제거하고 다음으로 대체 할 수 있습니다.style="max-width: 100%; height: auto; width: auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;"
morespace54

5
내가했던 것처럼 내부 너비에 단위를 추가하지 않도록주의하십시오. 그렇지 않으면 작동하지 않습니다! ie do n't do width = "350px"
magritte

3
@PhyllisSutherland 이미지에 대한 수정을 발견 <img src="file.jpg" "width="350" alt="" style="display:block;width:100%" /> litmus.com/community/discussions/...을
cbron

34

조건부 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>

6
그것이 ID 선택이 아닌 클래스이기 때문에 우수한 제안은, 그러나, 당신은 테이블 요소에 폭 ATTR를 사용하여 타이핑을 절약 할 것
스티브 Wasiura에게

이것은 훌륭합니다. 한 가지 문제를 제외하고 너비를 설정하면 Outlook에서 전자 메일이 주어진 크기보다 작게 축소되지 않습니다. 너비를 설정하지 않으면 이메일이 전체 화면으로 확장됩니다. 독을 선택하세요 :)
The Coordinator

13

짧은 대답 : 아니요.

긴 대답 :

고정 형식은 HTML 이메일에 더 적합합니다. 제 경험상 HTML 이메일에 관해서는 1999 년을 가장하는 것이 가장 좋습니다. 가능하면 CSS (style = "width : 650px")가 아닌 테이블 정의에서 명시 적으로 HTML 속성 (width = "650")을 사용하세요. 백분율없이 고정 된 너비를 사용하십시오. 너비가 650 픽셀 인 테이블 너비는 안전한 방법입니다. 인라인 CSS를 사용하여 텍스트 속성을 설정합니다.

"HTML 이메일"에서 작동하는 문제가 아니라 과다한 이메일 클라이언트와 HTML을 렌더링하는 제한된 (때로는 Gmail, Hotmail 등의 경우 일부러 그렇게) 기능이 문제입니다.


그래, 그게 내가 기대했던 것인데 물어볼 거라고 생각 했어.
Tim Goodman

35
고정 너비를 650으로 설정하면 모바일 이메일 클라이언트에서 이메일이 끔찍하게 보입니다.
DrewB

6
-1 : 모바일 장치는 실제 세계에서 상대적으로 크기가 작기 때문에 끔찍해 보입니다. 즉, 확대 / 축소 및 이동하지 않으면 디자인의 텍스트가 읽을 수 없을 정도로 작아집니다. 캠페인 모니터 가이드 반응 형 이메일 디자인을 살펴보십시오 .
Karl Horky

1
-1 또한 모바일 클라이언트에서도이 문제를 다루었 고 고정 너비를 갖는 것이 내 문제 였기 때문입니다.
Brian FitzGerald 2013

7
올해는 2015 년입니다. 모바일 장치는 어디에나 있습니다. 당신은 어리석은 전망을 위해 모바일 장치를 잊으라는 말입니까? 나는 전망은 잊어라. 그리고 Microsoft의 다른 모든 제품.
refaelio

5

파티에 조금 늦었지만 이렇게하면 끝납니다. 대부분의 사람들이 사용하는 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]-->

사용중인 또 다른 예는 다음과 같습니다. 모바일 장치 용 반응 형 주문 확인 이메일?


0

이것은 나를 위해 일한 솔루션입니다.

@ philipp-klinz 덕분에 https://gist.github.com/elidickinson/5525752#gistcomment-1649300

<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>

좀 더 간결한 예제를 제공 할 수있는, 문제를 해결하기 위해 필요하지 않습니다 거기에 물건을 많이있다
EDL

아이디어 @EdL 즉 이다 이메일 친화적 얻기의 가장 간결한 방법 max-width. 이 모든 것이 <div style="max-width: ...px">...</div>. 나는이 요점을 발견했을 때 작업 한 이메일의 경우,이 유일하게 일을 아웃룩 2010, 2013 년에 바로 보이는 것을 솔루션, 그리고 2016 년이었다
헨리

@henry 나는 모든 셀 패딩 글꼴 크기 속성 등을 더 많이 언급했습니다. width = "500"을 속성으로 지정하지 않는 한 이미지는 까다로운 것입니다. 여기서 500은 픽셀 단위의 너비입니다 outlook은 이미지를 전체 크기로 만듭니다 ( wrt. 이미지 파일) 일반적으로 고정 너비가됩니다.
EdL 2017 년

이 코드는 내 코드가 아니기 때문에 그대로 두었습니다.-요점에서 인용 한 것뿐입니다.하지만 커뮤니티 위키로 만들었습니다. 나는 생각 입니다 명시 적으로 지정할 필요 0px padding들과 margin이야뿐만 아니라 0 cellpaddingcellspacing. 그것은의 수 지정을 line-height위한 대용품으로 일하는 것이 font-size시간에 대한 채우기 위해 height(I 모두에서 테스트 싶어 존중하지 않는 tr모든에 다음의과 td가 필요한 정확히보고들). @EdL 당신은 멋진 것 그이뿐만 아니라 작업 가벼운 솔루션을 얻을 수 있다면 - 여기를 게시하시기 바랍니다 및 링크 된 요지에
헨리
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.