Проблемы замены стека шрифтов CSS в Outlook при использовании Google Webfonts

используя Google Webfonts в HTML-письме, я столкнулся с проблемами замены шрифтов в Outlook (2007,2010 и т. д.) это не произошло до включения webfonts.Он игнорирует стеки шрифтов и переходит прямо к Times.

это происходит, несмотря на использование встроенных резервных стеков шрифтов.

я заметил подобные проблемы, которые были опубликованы здесь раньше, но только как общий вопрос, не связанный с использованием webfonts. Раньше все резервные шрифты работали правильно. Я использование лакмуса для проведения тестирования электронной почты.

кто-нибудь знает почему это может происходить?

ссылка на лакмус: https://litmus.com/pub/53a33c7/screenshots

первоначально связанные шрифты в CSS так:

<link href='http://fonts.googleapis.com/css?family=Arvo|Droid+Serif:400,700,400italic,700italic|Roboto:300' rel='stylesheet' type='text/css'>

Я также попытался использовать @font-face и самостоятельно размещенные файлы после просмотра возможного решение в другом ответе, но это не сработало (я тоже обновил имена классов):

кроме шрифта попытка обхода проблемы:

<!--[if !mso]><!--> 

@font-face {
    font-family: 'droid_serif';
    src: url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.eot');
    src: url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.eot?#iefix') format('embedded-opentype'),
         url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.svg#droid_serif') format('svg'),  
         url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.woff') format('woff'),
         url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.ttf') format('truetype');

    font-weight: normal;
    font-style: normal;

}
<!--<![endif]-->

Outlook конкретного переопределения CSS, кажется, работает, но есть приоритетные вопросы. Я не верю, что Outlook признает !важная декларация, поэтому я работаю над более конкретными выборами. Однако я все еще не понимаю, почему это происходит, и если есть более простое решение.

Outlook Font Override Выдержка:

    <!--[if gte mso 9]>
    <style>
        /* Target Outlook 2007 and 2010 */

            h1 { font-family: 'Georgia',serif !important; font-weight:normal; }
            h1 a { font-family: 'Georgia',serif !important; font-weight:normal; }
            h2 { font-family: 'Trebuchet MS',arial, helvetica, sans-serif; font-weight:normal; }
            h3 { font-family: 'Trebuchet MS',arial, helvetica, sans-serif; }
            .cover,img.cover,a.cover {
                display: block;
                visibility: visible;

                td { font-family: 'Trebuchet MS',arial, helvetica, sans-serif; } 

                .droid { font-family: 'Georgia', serif; }
}
    </style>
    <![endif]-->

пример проблемного кода:

<td height="30" colspan="3" align="left" valign="middle" class="featured">
    <h2 style="text-align: left; padding: 0; margin: 0; color: #00799f; font-family: 'Roboto',arial, helvetica, sans-serif; font-size: 21px; font-weight: 100; background: none; border-bottom: 1px solid #b1d6e2; text-decoration: none; line-height: 36px; mso-line-height-rule: exactly;">cover story</h2>
</td>

обновление:

Я пробовал предложение в ответах поместить код импорта webfont в условные теги, которые исключают Outlook, безрезультатно.

<!--[if !mso]><!-- -->
@import url(http://www.example.css);
<!--<![endif]-->

и

<!--[if !mso]><!-- -->
@import url(http://fonts.googleapis.com/css?family=Oxygen);
<!--<![endif]-->

ОБНОВЛЕНИЕ II (РЕШЕНИЕ):

со всей предлагаемой помощью ясно, что ряд, казалось бы, незначительных проблем может вызвать эту проблему. Метод font-face кажется предпочтительным для @import. Наличие имени webfont не совпадает с локальным шрифтом может вызвать ту же проблему, но это просто не то, что происходило с этим конкретным письмом.

Я пробовал условный код на раннем этапе, чтобы скрыть код импорта webfont из Outlook <!--[if !mso]><!--> в целом.

проблема заключалась в том, что я сделал это в теге стиля CSS в разделе head. Просто размещение этого кода в собственном теге стиля, как показано ниже, имело значение.

Я подтвердил, что он работает, поскольку я смог удалить дополнительный обходной CSS-код, который я использовал для обнаружения версии Outlook 2007 и выше для восстановления h1, h2 значения стандартного стека шрифтов.

<!--[if !mso]><!-->
<style type="text/css">
@font-face {
    font-family: 'oxygenlight';
    src: url('http://www----/fonts/oxygen-light-webfont.eot');
    src: url('http://www.----/fonts/oxygen-light-webfont.eot?#iefix') format('embedded-opentype'),
         url('http://www.-----/fonts/oxygen-light-webfont.woff') format('woff'),
         url('http://www.-----/fonts/oxygen-light-webfont.ttf') format('truetype'),
         url('http://www.-----/fonts/oxygen-light-webfont.svg#oxygenlightlight') format('svg');
    font-weight: normal;
    font-style: normal;
}
</style>
<!--<![endif]-->

7 ответов


обновление: здесь техника вызов webfonts с резервным доступом к стеку шрифтов во всех версиях Мировоззрение, что сломать

попробуйте объявить свой webfont, если не Outlook. На webfont может быть проблематичным для Outlook, чтобы не вызывать его вообще может работать. Стоит попробовать...

изменить:

этот вопрос произошло перед С Outlook breaking, когда ваш первый объявленный шрифт находится в кавычках. Это кажется как ошибка/ограничение Outlook, которое, к сожалению, неизбежно.


чтобы Outlook использовал ваш стек шрифтов вместо замены вашего веб-шрифта любым шрифтом, который Outlook выбирает, добавьте условный комментарий,который будет считываться Outlook только для назначения ваших резервных шрифтов стека шрифтов. Определите свой веб-шрифт, но не определяйте его в условном комментарии, чтобы Outlook игнорировал веб-шрифт, шел прямо к условному комментарию и просто отображал Arial.

<style>
        @import url('http://www.yourdomain.com/webfont.css');
</style>

    <!--[if gte mso 9]>
        <style>
            .webfontsubstitute { font-family: arial, sans-serif; }
        </style>
    <![endif]-->

</head>
<body>

    <a href="#" target="_blank" style="font-family:superwebfont,arial,sans-serif;">
    <span class="webfontsubstitute">WEB FONT STYLED TEXT HERE</span></a>

У меня тоже была эта проблема, и я только что нашел довольно простое решение. После того, как вы импортировали свой веб-шрифт, @media screen { } может использоваться для выделения клиентов, которые поддерживают медиа-запросы, и это те, которые поддерживают веб-шрифты. Таким образом, просто указав купел-семья объявление внутри и снаружи этого селектора позволяет скрывать определенные шрифты от почтовых клиентов, таких как Outlook, поэтому следующим подходящим резервным шрифтом будет отображается, и ваш веб-шрифт будет хорошо отображаться в клиентах, которые его поддерживают.

@import url(http://fonts.googleapis.com/css?family=Open+Sans:300);

.h1 { font-family: 'Arial', 'Helvetica', sans-serif }

@media screen {
    .h1 {
        font-family: Open Sans, 'Arial', 'Helvetica', sans-serif
    }
}

кстати, Campaign Monitor предлагает это @import лучше, чем @font-face в электронных письмах в целом.


Я помню, что у меня была аналогичная проблема некоторое время назад. В конце концов, я думаю, что это был @import вызывает проблему, и мне пришлось использовать другой метод, чтобы вытащить шрифты.

вместо @import идете с @font-face метод.

@font-face {
  font-family: 'Oxygen';
  font-style: normal;
  font-weight: 400;
  src: local('Oxygen'), local('Oxygen-Regular'),     url(http://themes.googleusercontent.com/static/fonts/oxygen/v2/eAWT4YudG0otf3rlsJD6zOvvDin1pK8aKteLpeZ5c0A.woff) format('woff');
}

затем используйте шрифт, как обычно:

h1 {
  font-family: 'Oxygen', sans-serif;
}

проблема, вероятно, возникает из-за того, что ваш пользователь локально установил версию шрифтов и существует конфликт.

попробуйте @ font-face import (так работает Google WebFonts в любом случае) и просто переименуйте семейство шрифтов во что-то другое.

Е. Г.

@font-face {
    font-family: 'droid_serif';

в:

@font-face {
    font-family: 'droid_serif_alt';

обязательно отразите изменения в остальной части вашей разметки!


куда идет этот CSS? Он больше не попадает в заголовок?


вы должны использовать "mso-font-alt " для резервного шрифта (Outlook 2010,2013,2016):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>

    ....

    <style type="text/css">

    @font-face {
        font-family: 'droid_serif';
        src: url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.eot');
        src: url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.eot?#iefix') format('embedded-opentype'),
         url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.svg#droid_serif') format('svg'),  
         url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.woff') format('woff'),
         url('http://www.suissamesser.com/emails/rsdsa/DroidSerif-webfont.ttf') format('truetype');

        font-weight: normal;
        font-style: normal;
        mso-font-alt: 'Arial';
    }

    ...

    </style>
</head>

еще один трюк для переопределения пользовательских объявлений css:

<!--[if mso]>
    <style> 
      body,table tr,table td,table th,a,span,table.MsoNormalTable { 
        font-family: 'Arial', 'Helvetica', 'sans-serif' !important;  
      }
      .custom-headline{
          font-family: 'Times New Roman', 'serif' !important;
      }
    </style>
<![endif]-->

пожалуйста, Также посмотрите на:https://litmus.com/community/code/36-outlook-and-fallback-fonts