@font face изменчивый шрифт в Chrome

У меня есть веб-сайт, который я создаю здесь, и он выглядит хорошо (сейчас CSS3 медиа-запросы не работают для IE), но я обнаружил, что мой шрифт @font сломан и выглядит как дерьмо в Chrome для Windows (пока что это единственный крупный, который я нашел).

Я искал его и нашел исправление CSS3 rbg, которое должно работать, но мне оно ничего не дало. Сделал пуленепробиваемое исправление от Пола Айриша, однако тогда мой шрифт ломается в Android. Я изучаю это уже пару часов, но не могу найти ничего, что сработает. Я слышал о Cufon, но я стараюсь придерживаться лица @font, так как у меня возникают проблемы только с Chrome.

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

@font-face {
font-family: 'GeosansLightRegular';
src: url('geosanslight-webfont.eot');
src: url('geosanslight-webfont.eot?#iefix') format('embedded-opentype'),
     url('geosanslight-webfont.woff') format('woff'),
     url('geosanslight-webfont.ttf') format('truetype'),
     url('geosanslight-webfont.svg#GeosansLightRegular') format('svg');
font-weight: normal;
font-style: normal;

}

Он работает с большинством браузеров (опять же, у меня не было возможности протестировать КАЖДЫЙ из них, но я проверил его в IE 6-9, и он выглядит хорошо, FF 9 для Windows и FF 8 для OSX, Safari Opera и это выглядит великолепно Chrome для Windows просто плохо работает с командой @font face.

Есть ли у кого-нибудь совет, что я могу сделать, чтобы либо улучшить его внешний вид, либо исправить это? (Помимо удаления класса шрифта @font и использования обычного шрифта.)

Кроме того, я мог бы использовать условный комментарий из Chrome, чтобы просто просмотреть обычный шрифт, но тогда мой HTML не будет проверяться, а?

Поэтому любая помощь будет оценена по достоинству.


person kia4567    schedule 29.01.2012    source источник
comment
есть скриншот? так как он выглядит одинаково в Opera 12 и Chrome 17, как в Windows.   -  person c69    schedule 29.01.2012
comment
Я не рекомендую делать это для того, чтобы исправить это, просто для устранения неполадок - выглядит ли это более плавно, если вы переместите формат svg выше iefix? По крайней мере, в моей версии Chrome (16.0.912.77) сглаживание не применяется, если Chrome выбирает ttf или woff.   -  person JimmiTh    schedule 29.01.2012
comment
@ c69 Ладно. У меня есть хром и Firefox на скриншоте Windows. www.ambergoodwin.com/images/chrome.jpg www.ambergoodwin.com/images/firefox.jpg @TheKaneda Я попробовал то, что вы предложили, и это помогло. Он сгладил его так, как я хочу, однако IE теперь отображает его просто жирным и черным. Так что же будет означать этот результат?   -  person kia4567    schedule 29.01.2012
comment
Какая версия Хрома? Только недавно была исправлена ​​ошибка, из-за которой ClearType, включенный в Windows, фактически отключал сглаживание и хинтинг off в Chrome для всего, кроме SVG (который использует совершенно другой рендерер). В версии 16 применяется сглаживание, и текст выглядит нормально: dl.dropbox.com/u/14034871/chrome16.png   -  person JimmiTh    schedule 29.01.2012
comment
УХ ТЫ. Я люблю дропбокс. Ха-ха. Я особо не вникал в это, но после того, как вы разместили свою ссылку, мне стало любопытно, и это стало намного проще. Так что спасибо за это. ;) В любом случае, странно то, что я использую Chrome 16.0.9. Я использую Windows XP, а как насчет вас? Я не знаю, что делать... [1]: dl.dropbox.com/u/43287957/Chrome-16.0.9.jpg   -  person kia4567    schedule 29.01.2012


Ответы (5)


Я исправил это! Chrome нравится, когда вы сначала загружаете строку SVG. Просто переместите это в приоритет. Хм... кто-то должен сказать Font Squirrel.

https://stackoverflow.com/a/9041280/1112665

e.g.

src: url('geosanslight-webfont.eot');
src: url('geosanslight-webfont.eot?#iefix') format('embedded-opentype'),
     url('geosanslight-webfont.svg#GeosansLightRegular') format('svg'),          
     url('geosanslight-webfont.woff') format('woff'),
     url('geosanslight-webfont.ttf') format('truetype');

дайте мне знать, если это работает для вас. ваше здоровье!

(Отредактировано simoneast: версия EOT перемещена наверх, иначе она сломает IE.)

person maximo    schedule 31.01.2012
comment
Я на самом деле пробовал это, и это ДЕЙСТВИТЕЛЬНО работает, однако затем я теряю фактическое исправление ie, и оно превращается из этого конкретного шрифта в более жирный и черный обычный шрифт во всех версиях ei. Не знаете ли вы, что делать с новой проблемой ei? IE 8 ---› dl.dropbox.com/u/43287957/ie8- WINDOWS.jpg FF для MAC ---› dl.dropbox. com/u/43287957/firefox-MAC.jpg Chrome для WINDOWS ---› dl.dropbox.com/u/43287957/chrome-WINDOWS.jpg - person kia4567; 01.02.2012
comment
Я не уверен, что такое исправление IE. Я использовал генератор шрифта squirrel @font-face и просто заменил строку, упомянутую выше. Вы можете увидеть его по адресу: bit.ly/yGMCvg. - person maximo; 02.02.2012
comment
Затем следуйте инструкциям, опубликованным здесь: stackoverflow.com /вопросы/5477521/ - person maximo; 01.02.2013
comment
Это не работает в IE. В любом правиле @font-face файл EOT всегда должен быть первым. Никакой другой браузер не будет использовать файл EOT, и правило IE должно быть первым, иначе IE проигнорирует все это. Так что поместите строку SVG после файла EOT, и все заработает. - person Pointy; 22.02.2013

Я нашел еще одно простое решение для моего случая.

У меня Microsoft Windows 7 SP1 и Goodle Chrome 23.0.1271.64 m, и я использую FontAwesome для своего веб-приложения. . Чтобы включить сглаживание для FontAwesome в Chrome, просто удалите его, сделайте так, как сказал maximo — начните определение src со шрифтом svg, но также удалите имя шрифта после SVG-хеш. Просто конвертируйте это:

@font-face {
  font-family: "FontAwesome";
  src: url('../font/fontawesome-webfont.eot');
  src: url('../font/fontawesome-webfont.eot?#iefix') format('eot'),
       url('../font/fontawesome-webfont.woff') format('woff'),
       url('../font/fontawesome-webfont.ttf') format('truetype'),
       url('../font/fontawesome-webfont.svg#FontAwesome') format('svg');
  font-weight: normal;
  font-style: normal;
}

к этому:

@font-face {
  font-family: "FontAwesome";
  src: url('../font/fontawesome-webfont.eot');
  src: url('../font/fontawesome-webfont.eot?#iefix') format('eot'),
       url('../font/fontawesome-webfont.svg') format('svg'),
       url('../font/fontawesome-webfont.woff') format('woff'),
       url('../font/fontawesome-webfont.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

Это помогает?

(Отредактировано simoneast: версия EOT перемещена наверх, иначе она сломает IE.)

person Anthony    schedule 13.11.2012
comment
Если я сделаю ваше исправление @karminski, то шрифт не будет отображаться в Safari (WIN) и IE (WIN). Так что нет, к сожалению, это не исправление. - person Jeremy Zahner; 06.12.2012
comment
@JeremyZahner, это потому, что предложение реализовано неправильно. Строка SVG должна быть ниже обеих строк EOT; если это так, то он будет работать в IE. Однако в Chrome есть загадочная ошибка со шрифтами SVG, из-за которой макет полностью искажается в редких и непредсказуемых ситуациях. - person Pointy; 22.02.2013
comment
Постоянное использование SVG — не лучший способ, поскольку в SVG отсутствует подсказка. Без намеков шрифт выглядит более размытым, чем должен, в системах с включенным сглаживанием шрифтов. Поэтому я написал небольшой скрипт под названием Font Smoothie, который определяет, включено ли сглаживание шрифтов, и исправляет CSS только при необходимости. Я также создал генератор веб-шрифтов под названием Fontie, который принимает otf или ttf и генерирует пакет с правильными веб-шрифтами с подсказками. , CSS и Font Smoothie для вас. - person Torben; 31.01.2014

Существует свойство CSS3 'font-smooth, поддерживаемое webkit. Вы пробовали это?

person shaunsantacruz    schedule 29.01.2012

Чтобы веб-шрифты отображались с хорошим сглаживанием в Chrome в Windows, вам нужно использовать этот формат в объявлении шрифта:

@font-face {
    font-family: 'Futura';
    src: url('futura.eot');
    src: url('futura.eot?#iefix') format('embedded-opentype'),
         url('futura.woff') format('woff'),
         url('futura.ttf') format('truetype'),
         url('futura.svg#futura') format('svg');

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

@media screen and (-webkit-min-device-pixel-ratio:0) {
    @font-face {
        font-family: 'Futura';
        src: url('futura.svg#futura') format('svg');
    }
}

По сути, вам нужно заставить Chrome использовать формат шрифта SVG. Вы можете сделать это, переместив URL-адрес версии .svg вверх, однако у Chrome в Windows были проблемы с испорченным макетом при этом (до версии 30 включительно). Эти проблемы решаются путем переопределения объявления шрифта с помощью медиа-запроса.

Также: иногда базовая позиция шрифтов OpenType и шрифтов SVG не совпадает, но вы можете настроить это, просто отредактировав файлы шрифтов SVG. Шрифты SVG основаны на xml, и если вы посмотрите на объявление

<font-face units-per-em="2048" ascent="1900" descent="-510" />

Вы можете изменить значение восхождения и привести его в соответствие с другими версиями формата шрифта.

person Supercranky    schedule 08.10.2013
comment
Уверен, это мне очень помогло. мои шрифты будут переполнены (в хроме) в списке, а затем вернутся в нормальное состояние после многих обновлений. Так что было очень трудно выяснить, почему, так как иногда это просто начинало работать. Я только что изменил его, чтобы использовать медиа-запрос, и пока все хорошо. Надеюсь останется! - person Sackling; 18.11.2013

После многих часов поиска исправления я нашел идеальное решение. Это стоит годовой платы, однако, если вы веб-дизайнер с несколькими сайтами, это обязательно!

www.typekit.com

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

person kia4567    schedule 01.02.2012
comment
Я также обнаружил, что он работает на веб-сайте WordPress (что я недавно начал делать со всеми своими веб-сайтами) и загружаю плагин WP Google Fonts. Исправляет весь этот бардак в других браузерах, это бесплатно и очень просто! - person kia4567; 10.12.2012