Internet Explorer @ font-face не работает

Я пытаюсь заставить Internet Explorer отображать мои красивые шрифты. Это не работает. Они отлично работают в Firefox, и в моих журналах доступа Apache я вижу, что IE извлек шрифты. Таким образом, он анализирует тег CSS font-face, но не отображает их.

Сайт, который я использовал для преобразования шрифтов, был: http://www.kirsle.net/wizards/ttf2eot.cgi. Я попробовал этот инструмент WEFT от Microsoft, но он не работал должным образом. После установки и открытия он сказал: «При первом запуске, сделайте это ...», а затем постоянно зависал.

Вот мой CSS:

@font-face
{
   font-family: 'HelveticaLTCN';
   src: url('HelveticaNeueLTCom-LtCn_0.eot');
   src: local('HelveticaNeuel TCom LtCn'), url('HelveticaNeueLTCom-LtCn_0.ttf') format('TrueType');
}

Любые идеи относительно того, почему IE не отображает шрифты?

РЕДАКТИРОВАТЬ: Следует также упомянуть, что я вызываю шрифт с помощью:

p .mytext
{
   font-family: HelveticaLTCN;
}

person panas    schedule 18.11.2009    source источник


Ответы (15)


Если вы бросили полотенце или все еще боретесь с этим, я настоятельно рекомендую белочка шрифта. Он заменяет WEFT намного лучше, чем любой другой онлайн-генератор .eot. В качестве огромного бонуса он предоставляет все необходимые кросс-браузерные форматы в одном zip-файле вместе с рабочей страницей с образцом CSS + HTML. Это пока что ближе всего к @fontface nirvana.

person atsjr    schedule 13.12.2009
comment
Он действительно предоставляет пользователю приятные, очень информативные опции. Например, указание подходящих форматов SVG и WOFF (в некоторых случаях - и он тоже перечисляет). - person ZJR; 13.12.2009
comment
Это приводит к сбою и Chrome, и Firefox в ubuntu oneiric ... Это некоторая проблема с диалоговым окном файла, но я не могу сказать почему ... :( - person tutuca; 07.11.2011
comment
Думаю, я влюблен в белку шрифтов. Большое спасибо за ссылку. - person Rob Forrest; 02.05.2012
comment
helvetica neue занесена в черный список от font-squirrel. любые другие варианты? - person Tomi Seus; 04.09.2012
comment
Font Squirrel исправил мои проблемы со шрифтом! это был старый шрифт, брошенный создателем около 8 лет назад, и у него были проблемы, но Font Squirrel исправил шрифт И заставил его работать и в IE !! - person BillyNair; 18.12.2012
comment
После нескольких часов попыток исправить эту проблему ... GOOGLE! почему это не твой первый результат? - person Claudiu Creanga; 11.09.2014

Помните, что: шрифты .eot должны быть последними "src". В противном случае IE перепишет конфигурацию и выйдет из строя шрифт.

@font-face {
    font-family: "Aller Bold";
    src: url(fonts/Aller_Bd.ttf) format("truetype");
    src: url(fonts/Aller_Bd.eot);
}
person Dan Palmieri    schedule 24.01.2013
comment
Иногда жизнь может быть столь же простой, как эта ... У меня была эта проблема в IE 10,11 при обслуживании страницы с определенного URL-адреса (но при ее обслуживании локально шрифт правильно отображался). - person bvgheluwe; 07.03.2014
comment
... но теперь он сломался в Firefox и Safari. - person bvgheluwe; 07.03.2014
comment
Затем взгляните на ответ MahmoudS, вам нужно использовать формат src: url (fonts / Aller_Bd.ttf) (truetype), url (fonts / Aller_Bd.eot) формат (eot) - обратите внимание на запятую вместо точки с запятой, тогда он работает . - person WoodyDRN; 08.12.2015

Это сработало для меня:

@font-face {
    font-family : 'din-pro';
    src         : url('../fonts/din/DINPro-Medium.woff') format('woff');
    src         : url('../fonts/din/DINPro-Medium.otf') format('otf');
    src         : url('../fonts/din/DINPro-Medium.ttf') format('truetype');
    font-weight : 500;
    font-style  : normal;
}

@font-face {
    font-family : 'din-pro';
    src         : url('../fonts/din/DINPro-Regular.woff') format('woff');
    src         : url('../fonts/din/DINPro-Regular.woff2') format('woff2');
    src         : url('../fonts/din/DINPro-Regular.ttf') format('truetype');
    font-weight : 400;
    font-style  : normal;
}
@font-face {
    font-family : 'din-pro-ie';
    src         : url('../fonts/din/DINPro-Regular.eot?');
    font-weight : 400;
    font-style : normal;
}
@font-face {
    font-family : 'din-pro-ie';
    src         : url('../fonts/din/DINPro-Medium.eot?');
    font-weight : 500;
    font-style : normal;
}

Обратите внимание, что я определил шрифт для IE отдельно с суффиксом -ie. При использовании шрифта я бы сделал что-то вроде p { font-family : din-pro, din-pro-ie }. Протестировано и работает с IE5 с использованием эмуляции.

person Zankar    schedule 24.05.2017

Internet Explorer немного запутался с другими определениями @ font-face. Ранее я обнаружил, что это очень помогает - http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/

Вкратце, они рекомендуют следующий способ. Единственное изменение - добавить вопросительный знак в конце URL-адреса шрифта. Странно, не правда ли?

@font-face {
  font-family: 'Graublau Web';
  src: url('GraublauWeb.eot?') format('eot'), url('GraublauWeb.woff') format('woff'), url('GraublauWeb.ttf') format('truetype');
}

Перечислен ряд других альтернатив, а именно определение отдельных тегов @ font-face для файла EOT от других.

person Overflew    schedule 23.02.2011

У меня были те же проблемы, с которыми сталкивались многие здесь. Проблема оказалась просто в том, что IE имеет более короткий лимит символов на значение font-family. Я дал своему семейству шрифтов более короткое имя, и, наконец, оно заработало с использованием CSS, который выплюнул белка шрифта.

Странный!

person Adam Bales    schedule 03.02.2014

Одна вещь, которую вам нужно проверить, это

.css файл и .eot должны находиться в одной папке, если вы используете url ('HelveticaNeueLTCom-LtCn_0.eot')

или укажите полный путь URL-адреса, например src: url (http://www.example.com/path/to/url/Helvetica.eot)

Насколько я знаю, цитаты необязательны.

ps # Я уже давно встраиваю шрифт в свой блог, все работает нормально.

person YOU    schedule 18.11.2009
comment
CSS полностью встроен в документ HTML. Документ HTML и шрифты находятся в одном каталоге. На всякий случай попробовал использовать URL с полным путем вместо относительных. Все еще не сработало. Вот текущий код: codepad.org/j396KfJx Если это вообще имеет значение, то он работает на локальном хосте. Хотя я не понимаю, почему это так. Есть еще идеи? : / - person panas; 18.11.2009
comment
* {font-family: HelveticaLTCN;} вы тоже пробовали использовать * для всех тегов? если он не работает, возможно, вам стоит попробовать WEFT еще раз. Я использую WEFT, у меня он работает нормально. - person YOU; 18.11.2009
comment
Не-а, все еще не получилось. Вы используете Vista? Когда я когда-либо пытался запустить WEFT, он в первый раз вылетал на этапе загрузки шрифтов. Я попытался настроить его для работы под Windows 98 (режим совместимости), и произошло то же самое. Какая у вас версия Windows? : / - person panas; 18.11.2009
comment
У меня XP, кстати, если бы вы могли опубликовать где-нибудь свою тестовую страницу в Интернете, то некоторые люди могли бы ее изучить. - person YOU; 18.11.2009
comment
На данный момент у меня нет настройки сервера, на который я могу загрузить шрифты + html. Но весь соответствующий код находится в той ссылке codepad.org, которую я разместил. Единственная проблема, о которой я могу думать, - это шрифты. Сам код в порядке. Думаю, я попробую заставить WEFT работать. - person panas; 18.11.2009
comment
У меня была такая же проблема с IE. FF и другие браузеры были в порядке, IE не было. Я пробовал несколько онлайн-генераторов EOT и WEFT, программа с ужасными ошибками, между прочим. Я прихожу к выводу, что они создали недопустимые шрифты. Наконец-то попробовал использовать font squirrel, и он отлично работает. Возможно, у вас также есть недействительные или поврежденные файлы шрифтов. - person Jestep; 23.10.2010

Лучшее определение для font-face:

@font-face {
  font-family: 'Graublau Web';
  src: url('GraublauWeb.eot?') format('eot'), url('GraublauWeb.woff') format('woff'), url('GraublauWeb.ttf') format('truetype');
}
person Mahmoud Saleh    schedule 05.05.2013
comment
Не в IE, кажется. - person bvgheluwe; 07.03.2014

Для меня сработало следующее объявление:

@font-face {
    font-family: 'Frutiger45LightBoldItalic';
    src: local('☺'), url('../font/frutiger-bolditalic-webfont.woff') format('woff'), url('../font/frutiger-bolditalic-webfont.ttf') format('truetype'), url('../font/frutiger-bolditalic-webfont.svg#webfontR2tDy7QH') format('svg'), url('../font/frutiger-bolditalic-webfont.eot');
}

Таким образом, есть только 1 атрибут src, и .eot находится в его конце, без вопросительного знака.

То, что я пробовал раньше, не сработало:

  • размещение .eot в отдельной строке (до или после другого src)
  • поставить вопросительный знак после .eot
person bvgheluwe    schedule 07.03.2014

Вы можете преобразовать свой TTF-шрифт в современные форматы (например, WOFF) с помощью Transfonter, а затем использовать сильный @ font-face нравится:

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

Источник: https://css-tricks.com/snippets/css/using-font-face/

person Fred K    schedule 07.09.2018

IE не принимает шрифт, который включает строку формата в дескрипторе src - эта вторая строка src может быть виновником. Что произойдет, если вы удалите его (или удалите строку формата?)

Далее - иногда IE может немного педантично относиться к тому, используете ли вы кавычки вокруг значений в CSS. Попробуйте вместо этого font-family: "HelveticaLTCN"?

person arcwhite    schedule 18.11.2009
comment
Я добавил кавычки к каждому семейству шрифтов и удалил второй src из font-face. Все еще не сработало. Можно попробовать эту программу: code.google.com/p/ttf2eot. Я доложу о результатах ›.‹ - person panas; 18.11.2009

У меня была та же проблема, что и у панаса. Я преобразовал ttf в eot с помощью onlinefontconverter.com. Что ж, похоже, это была проблема: я просто попробовал fontsquirrel.com, как указал atsjr, и все работает нормально!

person Pere    schedule 03.12.2010

Пытаясь решить аналогичную проблему, я заметил, что определение DOCTYPE каким-то образом влияет на встроенные шрифты в IE. Когда я удалил определение DOCTYPE, шрифт отображался правильно.

person cezary    schedule 19.01.2012

этот код может решить мою проблему в IE:

  @font-face {
      font-family: 'kurdish';
      src: url('font/zkurd_aras.eot?') format('eot'), url('font/zkurd_aras.woff') format('woff'), url('font/zkurd_aras.ttf') format('truetype');}
person maikel    schedule 17.04.2013

Всегда лучше направлять атрибут font-face локально, а не онлайн, например url ('../ fonts / font-name.eot'). IE и другие браузеры не «видят» шрифты, когда вы запускаете свою веб-страницу на локальном сервере.

person kef    schedule 10.02.2014

Одна особенность IE заключается в том, что он требует, чтобы имя семейства шрифтов совпадало с именем, указанным в свойствах шрифта. В то время как Chrome и другие позволяют вам называть семейство шрифтов, как вы хотите, это не относится к IE.

person Alex    schedule 11.01.2016
comment
Привет, как узнать, какое имя находится в свойствах шрифта? Есть ли где-нибудь файл свойств шрифта? Вам нужен специальный инструмент, чтобы открыть файл .eot и узнать свойства шрифта? - person Simon Green; 14.04.2016
comment
@SimonGreen ознакомьтесь с этим ответом, чтобы получить хорошее объяснение: stackoverflow.com/questions/16788330/ - person Alex; 14.04.2016