2010-09-16 4 views
1

Im кодируя html бюллетень и столкнулся с странной вещью в gmail. Код:Информационный бюллетень Html в gmail

скриншот
<table cellpadding="0" cellspacing="0" width="700" height="122"> 
       <tr> 
        <td valign="top" colspan="3" width="689" height="8"><img src="http://www.url.com/img/product_top_border.gif"></td> 
       </tr> 
       <tr>      
        <td valign="top" width="12" height="106"><img src="http://www.url.com/img/product_left_border.gif"></td> 
        <td valign="top" height="106" width="689"> 
         some content 
        </td> 
        <td valign="top" width="12" height="106"><img src="http://www.url.com/img/product_right_border.gif"></td> 
       </tr> 
       <tr> 
        <td valign="top" colspan="3" width="689" height="8"><img src="http://www.url.com/img/product_bot_border.gif"></td> 
       </tr> 
      </table> 

Gmail:

gmail

Скриншот из других почтовых клиентов:

In other email clients

Любые намеки?

Ваша помощь будет оценена.

+0

Эти скриншоты выглядят очень похожими, что вы ищете? – Rudu

+0

Вы смотрите на разницу шрифтов или изображения с разбитыми линиями? Были ли эти два скриншота взяты с тем же браузером? – funkymushroom

+0

Разрывы могут исходить из белой/прозрачной границы (попробуйте border = 0 тоже). Иногда они также визуализируются из-за новой строки между '' и следующей' 'попробуйте объединить в' '(между пробелами нет пробелов). Обычно эти незначительные отличия от разных браузеров. – Rudu

ответ

4

Это проблема браузера. Когда вы помещаете изображение внутри таблицы, изображение должно быть быть встроенным элементом, сидящим на текстовой строке. Это означает, что под ним будет пространство (для частей строки текста, которые идут ниже базовой линии, то есть descenders), и рендеринг GMail является «правильным».

Однако, в Quirks mode, а также в режиме «почти стандартов» изображение, которое является единственным в ячейке, ведет себя как блок вместо встроенного элемента, поэтому он не получает дополнительного интервала. Похоже, что «другой» клиент находится в режиме Quirks, так как он сбросил размер шрифта внутри таблицы (типичная ошибка режима Quirks).

Обычно вы хотите, чтобы избежать режима Quirks любой ценой, так что вы будете использовать режим стандартов и исправить проблему IMG-в-таблице, установив CSS display: block или vertical-align: -anything-но-базовый на <img> элементов, или , лучше, сбросьте уродливую таблицу макета и вместо этого используйте некоторые фоновые изображения. Однако, конечно, в контексте электронной почты ваши возможности для стилизации строго ограничены.

Итак, попробуйте установить style="display: block" на изображения, чтобы попытаться сделать их одинаковыми в Quirks vs Standards, если хотите, но имейте в виду, что это наименьшее из ваших проблем при работе с почтой HTML. Вы столкнетесь с гораздо большими потерями, чем это. HTML-адрес электронной почты полностью отстой на каждом уровне; если у вас есть шанс выйти из него, просто отправив ссылку на соответствующую веб-страницу, сделайте это.

+0

Благодаря bobince;) Работает как шарм :) Так что, я изменил мой образ HTML строки: снова Спасибо;) – Bounce

+0

Спасибо. Установка изображений 'display: block' также решила его для меня. Желаю, я нашел это сообщение 4 часа назад:) – coryetzkorn

0

Что касается изменения шрифтов, кажется, что «другой клиент» может показать не-HTML-тело, и я думаю, что gmail поддерживает HTML по умолчанию.

Вы настроили данные контента как HTML? Например, в C# вам может понадобиться установить:

MailMessage mail = new MailMessage(); 
mail.IsBodyHtml = true;