0Pricing
HTML Academy · Урок

Макет на основе таблиц

Разберитесь, почему HTML-письма используют таблицы вместо div

«Макет на основе таблиц» — бесплатный урок HTML Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.

Почему в электронных письмах используют таблицы

Почтовые клиенты — особенно Outlook в Windows, использующий механизм отображения Microsoft Word, — не поддерживают flexbox, grid и даже надёжную блочную компоновку. Таблицы — единственный структурный примитив, который одинаково отображается во всех основных почтовых клиентах.

Одна внешняя таблица

Каждое адаптивное электронное письмо начинается с внешней <table> шириной 100%, которая служит телом письма, а за ней следует внутренняя таблица фиксированной ширины (обычно 600px), содержащая фактическое содержимое. Этот двухуровневый шаблон лежит в основе почти каждого рабочего шаблона.

<table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td align="center">
      <table width="600" cellpadding="0" cellspacing="0" border="0">
        <tr><td>Content goes here</td></tr>
      </table>
    </td>
  </tr>
</table>

Обязательные атрибуты таблиц

Всегда добавляйте cellpadding="0" cellspacing="0" border="0" в каждую таблицу. Без них Outlook вставляет неожиданные промежутки. Добавление role="presentation" сообщает программам чтения с экрана, что семантику таблицы следует пропустить; это правильно, поскольку таблицы компоновки не являются таблицами данных.

Вложенные таблицы для столбцов

Чтобы создать несколько столбцов, вложите таблицу с двумя ячейками <td> в строку содержимого. Каждая ячейка содержит один столбец. Избегайте сочетания div+float: Outlook игнорирует float и всё равно размещает столбцы вертикально, нарушая дизайн.

600px — стандартная ширина

Фактическая ширина области предварительного просмотра на компьютерах составляет около 600px. Проектирование с расчётом на эту ширину позволяет удобно просматривать письмо без горизонтальной прокрутки одновременно в Outlook, Gmail для компьютеров, Apple Mail, Yahoo и Thunderbird.

Вертикальное размещение на мобильных устройствах с помощью медиазапросов

Для небольших экранов задайте ячейкам внутренней таблицы медиазапрос, устанавливающий ширину 100% и display со значением block, чтобы столбцы располагались вертикально. Почта iOS и Gmail для Android поддерживают медиазапросы; Outlook 365 для компьютеров их игнорирует, но сохраняет настольную компоновку шириной 600px.

@media (max-width: 600px) {
  .col {
    display: block !important;
    width: 100% !important;
  }
}

Фон на уровне ячейки

Цвета и изображения фона следует применять к ячейкам <td>, а не к div. Outlook надёжно поддерживает атрибут bgcolor у td, тогда как CSS-свойство background-color у div в зависимости от клиента может быть удалено или полностью проигнорировано.

VML для фонов в Outlook

Для фоновых изображений Outlook нужен Vector Markup Language (VML). Оборачивайте современный CSS background-image в условные комментарии <!--[if mso]>...<![endif]--> со встроенным резервным вариантом v:rect, чтобы Outlook отображал изображение, а все остальные клиенты использовали CSS.

Избегайте современного CSS

Не используйте flexbox, grid, пользовательские свойства (их поддержка ограничена) и большинство способов позиционирования. Придерживайтесь display: block/inline, фиксированных ширин, заданных атрибутами, и встроенных стилей. По веб-стандартам результат выглядит устаревшим, зато одинаково отображается в каждом почтовом ящике.

cellpadding для внутренних отступов

Используйте cellpadding (атрибут) и одну ячейку <td> с отступами для внутренних промежутков. Отступы у ячеек таблицы ненадёжны в Outlook, тогда как padding у td поддерживается повсеместно. Объединяйте bgcolor и padding в одной td для создания компонентов типа «карточка» без div.

Доступность

Добавляйте role="presentation" в каждую таблицу компоновки, чтобы программы чтения с экрана не объявляли «строка, столбец 1 из 2». Также добавляйте альтернативный текст ко всем изображениям, используйте настоящий текст для любого содержимого (а не изображения с текстом) и соблюдайте понятную иерархию заголовков.

Проверка знаний

Почему для компоновки электронных писем используют таблицы, а не div с CSS flexbox?

Итоги

Для компоновки HTML-писем используются вложенные таблицы с cellpadding/cellspacing/border, равными нулю, и role="presentation". Внешняя таблица шириной 100% центрирует внутреннюю таблицу шириной 600px; вложенные ячейки td образуют столбцы, которые медиазапросы могут выстроить вертикально на мобильных устройствах. Избегайте flexbox и grid, используйте bgcolor у td и добавляйте резервные варианты VML для фонов в Outlook.

Часто задаваемые вопросы

Урок «Макет на основе таблиц» бесплатный?

Да — полный текст урока «Макет на основе таблиц» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.

Чему я научусь в уроке «Макет на основе таблиц»?

Разберитесь, почему HTML-письма используют таблицы вместо div Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать HTML Academy?

Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Макет на основе таблиц»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке HTML Academy?

Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Макет на основе таблиц
  2. Встроенные стили для электронных писем
  3. Работа с изображениями в почтовых клиентах
  4. Тестирование с Litmus и Email on Acid
← Назад к HTML Academy