Привет. Вы оказались на этой странице, значит скорее всего вам приходится верстать email рассылки, поэтому соболезную. Я составил памятку, чтобы не упустить важные моменты при верстке HTML писем, буду пополнять этот список. Вот он:
Что надо помнить?
У всех картинок с текстом присутствует alt атрибут, у картинок без текста пустой alt
Фоновые изображения нужно пересохранять для web
Размеры картинок выгружаем в x2 для ретина дисплеев
Круглые кнопки и кнопки с нестандартным шрифтом верстаем картинкой, чтобы скругления работали и в outlook
Все эмодзи вставляем картинкой, а не кодом
У писем нет ограничения по ширине, ограничивать нужно только контент. Но, если у нас есть фоновое изображение, тогда ограничиваем общую ширину письма, чтобы она была равна ширине фонового изображения и ограничиваем ширину для outlook и задаем для него отдельное фоновое изображение.
Вертикальные отступы лучше делать так <!-- padding --><div style="height: 10px; line-height: 10px; font-size: 8px;"></div>
Стараемся не использовать padding для отступов, верстаем по максимуму таблицами. Например: Есть иконка шириной 35px и отступ до текста 15px, значит делаем ячейку шириной 50px, а не с помощью паддинга 35px + padding: 15px
Если при наличии фонового изображения требуется вертикальный отступ более 19px, то задаем его с помощью таблицы. Это связано с тем, что отступ заданный через таблицу не меняет своего размера, в то время как отступ через padding может увеличиваться в outlook тем больше, чем больше исходное значение. И чтобы контент в outlook не обрезался следует отступы задавать через таблицы
Блоки с перестроением по центру должны быть одинаковой ширины
Проверить правильно ли переносится текст в адаптиве, особое внимание к номеру телефона
Для перечеркнутого текста используем не тег <del>, а <span>text-decoration: line-through;</span>. В Outlook не тег del будет менять цвет шрифта и это поведение нельзя будет переопределить, поэтому используем span с css стилями
Знак рубля оборачиваем в <span>, иначе на айфонах символ будет выглядеть не очень хорошо
Не используется адрес ссылки в качестве её отображаемого текста.
При отправке письма любая платформа заменит адрес ссылки для отслеживания перехода. Если текст ссылки, который имеет вид url-адреса не будет совпадать с значением в href, почтовые сервисы могут принять это за мошенничество. Вместо этого лучше написать «подробнее», «перейти» или что-то в этом духе.
Например:
Так нельзя!
Исключением являются ссылки с utm метками.
Так можно. Есть utm метки
Так можно. Отображаемый текст не похож на ссылку, которые начинаются с https или https
Код письма не превышает 102 килобайта, иначе Gmail обрежет низ письма. После того как ESP-платформа добавила ссылки, размер письма остался таким же — не больше 102 килобайт.
Альт-текст должен помещаться в ширину картинки, которую он заменяет. Иначе тексты альтов могут перекрывать друг друга. Лучше сделать альт-текст такого же цвета, как и дизайн письма. Иначе альты будут синими.
У всех изображений прописаны border="0"
Это нужно, чтобы избежать появления рамок в outlook и других древних почтовиках.
Темная тема протестирована в Яндекс Почте. В других почтовых клиентах цвета будут инвертироваться похожим образом. Если ваши подписчики чаще используют другую почту, например, Mail, то лучше проверить её.
Для аутлука отступы от 30px заданы с помощью таблиц. Такие отступы рендерятся без искажений.
Отступы в аутлук сделаны таблицей
Очень важно делать такие отступы в элементах, которые имеют определённую высоту. Например, в блоках с фоном.
В тёмной теме в Mail.ru градиент кодом не инвертируется!
Поэтому картинке с градиентом задаем прозрачность 70% и визуально подбираем цвета под исходный. Или изначально делаем так, чтобы текст был хорошо виден и в тёмной теме. Для этого нужно правильно настроить контраст.
Баги
Появляется белая горизонтальная полоса в Outlook
Outlook не любит нечётные числа. Поэтому нужно сделать все размеры шрифтов, расстояния между строчками и отступы четными.
Можно попробовать разделить отступ около полосы на два.
В Outlook 2019 исчезает правая рамка
Это происходит обычно у двух или более блоков, которые стоят рядом.
Нужно сделать так:
Вокруг проблемного блока сделать ещё одну таблицу с рамкой. Цвет рамки должен быть таким же, как цвет фона. Убрать ширину у исходной таблицы, чтобы при удалении рамки проблемный блок занял всё свободное место.
Код исходной таблицы
Код таблицы с двумя рамками
Суммы, время, даты и адреса превращаются в ссылки
Нужно обернуть часть текста в тег <a>, но без атрибута href, указать цвет текста и убрать подчёркивание.
Пример кода для времени
Вы можете кинуть мне донат на кофe, если нашли что-то полезное для себя на этом сайте. Спасибо 🙏