Как лучше всего центрировать содержимое электронной почты HTML в окне браузера (или на панели предварительного просмотра почтового клиента)?

93

Обычно я использую правила CSS margin:0 autoвместе с контейнером 960 для моего стандартного содержимого на основе браузера, но я новичок в создании электронной почты HTML, и у меня есть следующий дизайн, который я хотел бы теперь сосредоточить в окне браузера без стандартного CSS. .

http://static.helpcurenow.org/mockups/emails/2010/may-survey/survey.html

Кажется, я припоминаю, что где-то видел, что этого также можно достичь, обернув дизайн вашей электронной почты во внешнюю таблицу, width:100%и используя какой-то встроенный стиль для text-align:centerтела или что-то в этом роде, чтобы сделать это?

Есть ли лучший способ для этого?

Джоэл Гловье
источник
2
"margin: 0px auto" ... к вашему сведению, когда вы используете 0что-либо, вам не нужно указывать единицу измерения :)
Мэтт

Ответы:

212

Выровняйте стол по центру.

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

Если у вас есть «ваше содержимое», если это таблица, установите для него желаемую ширину, и вы получите содержимое по центру.

Шади Альмосри
источник
Есть ли свойство CSS, которое делает то же самое? text-align: centerне делает то же самое.
Кевин Гадьяни
1
Некоторым провайдерам электронной почты требуется этот устаревший метод центрирования объектов. (Я думаю об Apple Mail).
Drazzah
84
Когда вы кодируете макеты электронной почты, вы буквально пишете код, как в 1999 году.
Captain Hypertext
Это приводит к тому, что дочерние таблицы также центрируются tdв Outlook Web App (OWA), независимо от того, установлено ли для них выравнивание leftили нет.
Ishmael
30

Для гуглеров и полноты:

Вот ссылка, которую я всегда использую, когда мне нужно пройти через боль при реализации HTML-шаблонов электронной почты или подписей: http://www.campaignmonitor.com/css/

Это список поддержки CSS для большинства, если не для всех, параметров CSS, хорошо сравненный между некоторыми из наиболее часто используемых почтовых клиентов.

Для центрирования не стесняйтесь просто использовать CSS (поскольку этот alignатрибут устарел HTML 4.01).

<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td style="text-align: center;">
            Your Content
        </td>
    </tr>
</table>
Юстус Ромейн
источник
6
Не работает, если вы центрируете таблицу или другой элемент уровня блока.
Роман
Вы правы, я не уверен, margin: 0 auto;поддерживается ли это (в сочетании с a width), но обычно это работает для браузеров, но я не уверен, хорошо ли подходят почтовые клиенты в этой ситуации.
Justus Romijn
2
Да, я не был уверен, будут ли его поддерживать все браузеры, поэтому выбрал надежный, но устаревший тег <center>.
Роман
10

table align = "center" ... выравнивает таблицу по центру страницы.

Использование td align = "center" центрирует содержимое внутри этого td, полезно для центрированного выровненного текста, но у вас будут проблемы с некоторыми почтовыми клиентами, центрирующими содержимое в таблицах подуровня, поэтому использование td align в качестве метода верхнего уровня для центрирования вашего "контейнера" таблица на странице - это не способ сделать это. Вместо этого используйте выравнивание таблицы.

По-прежнему используйте свою таблицу-оболочку 100%, просто как оболочку для тела, так как некоторые почтовые клиенты не отображают цвета фона тела, но они будут отображать его в таблице 100%, поэтому добавьте свой цвет тела как в тело, так и в 100 % Таблица.

Я мог бы бесконечно долго рассказывать обо всех особенностях разработки HTML-электронной почты. Все, что я могу сказать, это тестовый тест и еще раз тест. Litmus.com - отличный инструмент для тестирования электронной почты.

Чем больше вы сделаете, тем больше узнаете, что работает в каких почтовых клиентах.

Надеюсь это поможет.


источник
7

Вот ваше пуленепробиваемое решение:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="33%" align="center" valign="top" style="font-family:Arial, Helvetica, sans-serif; font-size:2px; color:#ffffff;">.</td>
    <td width="35%" align="center" valign="top">
      CONTENT GOES HERE
    </td>
    <td width="33%" align="center" valign="top" style="font-family:Arial, Helvetica, sans-serif; font-size:2px; color:#ffffff;">.</td>
  </tr>
</table>

Просто попробуйте, выглядит немного беспорядочно, но работает даже с новым обновлением Firefox для почты Yahoo. (не центрирует электронное письмо, потому что замените основную таблицу на div)

user3408238
источник
1
Небольшую невидимую «точку» следует заменить, возможно, на & nbsp; и инструкции, чтобы сделать малый невидимый период невидимым, следует отбросить. Я даже не смог отправить себе тестовое электронное письмо с этими настройками, поскольку они пошли прямо в ад спама моих провайдеров :) Защита от вредоносных программ делает неприятный запах еще более подозрительным ... например: `<td width =" 33% "align = "center" valign = "top"> & nbsp; </td> `
Techmag,
6

CSS в электронных письмах - это боль. К сожалению, вам, вероятно, понадобятся таблицы, потому что CSS поддерживается не всеми почтовыми клиентами.

Тем не менее, используйте HTML Transitional DOCTYPE, а не XHTML, и используйте <center>.

Себ
источник
5

У меня были проблемы с Outlook и Office365. На удивление, похоже, что работало:

<table align='center' style='text-align:center'>
  <tr>
    <td align='center' style='text-align:center'>
      <!-- AMAZING CONTENT! -->
    </td>
  </tr>
</table>

Я перечислил только некоторые ключевые моменты, которые помогли мне решить проблемы с электронной почтой Microsoft.

Могу ли я добавить, что создание электронного письма, которое будет хорошо смотреться во всех электронных письмах, - это боль. Этот сайт был очень хорош для тестирования: https://putsmail.com/

Он позволяет вам перечислить все электронные письма, на которые вы хотите отправить тестовое письмо. Вы можете вставить свой код прямо в окно, отредактировать, отправить и повторно отправить. Это мне очень помогло.

Тревор Нестман
источник
Спасибо, у меня это сработало. Я пытался
центрировать
2

В некоторых случаях margin = "0 auto" не помогает при выравнивании HTML-письма по центру в Outlook 2007, 2010, 2013.

Попробуйте следующее:

Оберните ваш контент в другую таблицу с помощью style = "table-layout: fixed;" и align = «center».

<!-- WRAPPING TABLE -->
<table cellpadding="0" cellspacing="0" border="0" style="table-layout: fixed;" align="center">
  <tr>
    <td>
      <!-- YOUR TABLES AND EMAIL CONTENT GOES HERE -->
    </td>
  </tr>
</table>
Анас
источник
1
Зачем использовать tableдля этого, если будет только одна строка и один столбец? Вы не используете какие-либо функции tableэлемента.
dg99 02
вы используете таблицу в html-письме, потому что решение любой проблемы с html-письмом, которое будет работать почти для всех клиентов, каким-то образом будет включать «добавление еще одной таблицы»
user254694