이메일 코딩은 보통의 코딩 방식과 다릅니다. 이메일 서비스(아웃룩, 지메일, 네이버 등)마다 아웃룩의 버전마다 렌더링 되는 화면은 상이합니다. 테스트를 하며 디자인과 맞춰야 하기 때문에 생각보다 쉽지 않은 작업입니다.
이 글은 최근에 아웃룩 이메일 템플릿 작업을 하며 느꼈던 특징들을 정리합니다.
👮🏻♀️ 공통 규칙
Inline Style
스타일시트를 별도로 작성하지 않고 인라인 스타일로 작성합니다.
Table
<div>가 아니라 로 레이아웃을 설계해야 합니다. 코드가 길어지는 단점이 있지만 대부분의 이메일 서비스들이
<table cellpadding="0" cellspacing="0" border="0" style="border-collapse: collapse;">
</table>
Width
width는 버전마다 인라인 스타일 적용 여부가 다르기 때문에 table 태그의 속성으로도 기재하여 명확하게 해줍니다.
테이블 태그의 속성에 width와 height에는 px 단위를 쓰지 않습니다.
<td width="100" style="width: 100px;"></td>
Align
정렬 역시 HTML 태그의 속성으로 지정해 줘야 합니다.
<td valign="middle"></td> // vertical 정렬
<td align="center"></td> // horizontal 정렬
Image
이미지 태그는 렌더링되면서 이미지 아래에 여백이 생깁니다. 여백을 없애려면 아래 스타일 추가합니다.
<img src="/" style="display: block;" alt="대체텍스트">
Background
CSS background 속성보다 HTML 속성으로 지정해 줍니다. 또한 보통 #fff; 로 축약하는게 좋은 방법이지만 이메일 코딩에는 축약형은 사용하지 않습니다.
<td bgcolor="#ffffff;"></td>
Word Break
table-layout: fixed로 테이블 열 너비를 고정할 수 있지만 outlook 2010에서는 이 속성을 무시하고, 긴 문장은 범위를 벗어나서 한 줄로 길어집니다.
<table style="word-break: break-all;"></table>
👻 조건부 CSS
아웃룩 버전 별로 적용되는 내용이 달라서 버전 별 최적화를 위해 상단 head에 조건부 CSS를 선언할 수 있습니다.
// 아웃룩 2010의 경우
`<!--[if mso 14]> your code <![endif]-->`
📚 참조
Email Design at Stack Overflow
Campaign Monitor - 이메일 클라이언트 별 적용되는 CSS Guide
HTML Email Template 만들기 - 한글로 잘 작성된 가이드^^
HTML 이메일 템플릿 처음부터 제작하기
'HTML' 카테고리의 다른 글
사파리에서 SVG 렌더링 이슈 해결하기 (0) | 2023.04.02 |
---|---|
HTML5 기초 <h> 태그란, 시맨틱 웹과 SEO의 기본 (2) | 2020.09.15 |
a href="#", void(0) 의 의미 차이점 (3) | 2020.08.26 |