Я создал шаблон электронной почты, который использует макет из двух столбцов. Это был мой подход:
<table>
<tr>
<td colspan="2" align="center">
<h1>Header of my email template</h1>
</td>
</tr>
<tr>
<td>
<img src="image1.jpg" alt="Image 1" />
</td>
<td>
<img src="image2.jpg" alt="Image 2" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<p>Footer of my email template</p>
</td>
</tr>
</table>
Отлично работает на настольном компьютере! У меня есть макет с двумя колонками, как я и хотел. Проблема в телефонах, потому что экраны слишком малы для двухколоночного макета. Мне нужно одно изображение на строку, а не два, для мобильных устройств. Что я мог сделать, так это использовать float:left;width:100%
для <td>
элементов, содержащих изображения, чтобы у меня был один макет столбца, который мне нужен. Однако это float:left;width:100%
должно применяться только тогда, когда, например, @media screen and (max-width:450px)
. Но нет никакого способа использовать @media screen and (max-width:450px)
, используя inline CSS. Помните, это для шаблона электронной почты. Поэтому я не могу вызвать внешние CSS файлы или добавить CSS к <head>
страницы, потому что это код, который будет отправлен для шаблона электронной почты.
Я нашел на https://kb.benchmarkemail.com/using-css-in-html-emails/ этот совет, но это не решение для отзывчивых таблиц:
Что нужно сделать
Использовать таблицы для разметки. Таблицы более последовательно поддерживаются. Мы рекомендуем вам разместить свой код CSS в строке вашего контента. Это должно выглядеть примерно так: Ваш контент здесь .... Объявите ширину, ячейку и пространство ячеек для всех таблиц и ячеек таблицы. Это приведет к фиксированной ширине шаблона. Используйте атрибуты тегов hspace и vspace, чтобы добавить пробел вокруг изображения. Встроенные стили полей и отступов поддерживаются большинством, но не всеми почтовыми клиентами
Есть идеи? Спасибо.