@font-face сглаживание в Windows и Mac

Я использовал http://www.fontsquirrel.com/ для создания набора @font-face.< br> Он работает нормально, но результат на Windows отличается от результата на Mac.
В Windows шрифт имеет неправильное сглаживание:
Font face на Mac это результат на Mac с FF, Chrome или Safari (все обновлены до последней версии).
Начертание шрифта в Windows это результат в Windows с FF или Chrome.

Как видите, результат не тот. В Windows шрифт толще и грубее.
Как решить эту проблему?


person pasine    schedule 30.10.2010    source источник


Ответы (8)


Это выглядит как обычный уродливый способ отображения шрифтов в WinXP. Некоторые (IMO: заблуждающиеся) люди даже предпочитают это.

Чтобы получить сглаживание для настольных шрифтов в целом на XP, вы должны включить его, выбрав «Свойства экрана» -> «Внешний вид» -> «Эффекты» -> «Используйте следующий метод для сглаживания краев экранных шрифтов» -> «ClearType». Параметр по умолчанию «Стандартный» — это устаревшая техника «размазывания шрифтов» в Windows, которая беспокоит только включение при больших размерах шрифта, а затем часто создает беспорядок.

В IE7+ есть опция — включенная по умолчанию — всегда использовать сглаживание ClearType для отображения шрифтов в веб-браузере. Другие веб-браузеры будут учитывать настроенный пользователем метод отображения шрифта. Жаль, что у многих людей эта полезная настройка отключена, но на самом деле это не ваша проблема.

(Существует неприятный хак, позволяющий Chrome выполнять некоторое сглаживание текста, а именно:

text-shadow: 0px 0px 1px rgba(0,0,0,0);

но я бы не советовал.)

Одна вещь, которую вы можете сделать, когда для параметра «Использовать следующий метод...» установлено значение «Стандартный», попытаться заставить шрифт получить некоторую форму сглаживания, это проверить, что рассматриваемый шрифт не имеет таблицы GASP, сообщающей старомодным средствам визуализации TrueType отключить сглаживание для определенных размеров шрифта. Вы можете изменить таблицу GASP с помощью редактора шрифтов или с помощью инструмента командной строки ttfgasp.exe.

person bobince    schedule 30.10.2010
comment
Я пытался включить ClearType в Windows, но проблема осталась. Я также проверяю таблицу GASP, но: вы видите другие решения? вы думаете, что использование другого типа шрифта (woff, eot, svg и т. д.) может что-то изменить? - person pasine; 31.10.2010
comment
Я так не думаю, нет. Преобразование контуров в формат Безье типа 1 вместо сплайнов TTF может иметь значение для средства визуализации, используемого для сглаживания шрифтов, отличных от ClearType, но это довольно радикальный шаг. Не могли бы вы выложить шрифт куда-нибудь, чтобы проверить? О, еще один вопрос: возникают ли неровности рендеринга везде, когда вы используете шрифт, даже на тривиальной тестовой странице? Есть и другие причины, по которым сглаживание может быть отключено, в частности, когда вы используете стиль IE filter (обычно для воспроизведения opacity). - person bobince; 31.10.2010
comment
Шрифт Myriad Pro (это стандартный шрифт на Mac, но не на Win). Если хотите, я могу прислать вам сайт, который я разрабатываю, чтобы вы могли увидеть его вживую. - person pasine; 31.10.2010
comment
Хорошо, но имейте в виду, что Myriad, поставляемый в комплекте с Mac, не имеет лицензии для веб-встраивания. Насколько я понимаю, на данный момент единственный легальный способ встроить Myriad — через Typekit. - person bobince; 01.11.2010
comment
Я не рассматривал юридический вопрос. Я заменю изображениями или использую альтернативный шрифт. Спасибо за вашу большую помощь! - person pasine; 01.11.2010
comment
Это помогает мне решить проблему сглаживания: stackoverflow.com/a/13366787/1002639 - person Anthony; 13.11.2012

Я тоже страдал от этого в Chrome, и я думаю, что только что нашел ответ!

Chrome не понравился CSS, созданный fontsquirrel.com по умолчанию.

@font-face {
    font-family: 'HLC';
    src: url('/_styles/hlc/hl-webfont.eot');
    src: url('/_styles/hlc/hl-webfont.eot?#iefix') format('embedded-opentype'),
         url('/_styles/hlc/hl-webfont.woff') format('woff'),
         url('/_styles/hlc/hl-webfont.ttf') format('truetype'),
         url('/_styles/hlc/hl-webfont.svg#HLC') format('svg');
    font-weight: normal;
    font-style: normal;
}

Чтобы исправить, я переместил строку SVG:

url('/_styles/hlc/hl-webfont.svg#HLC') format('svg')

в начало списка. Теперь я вижу сглаженные шрифты! Я думаю, Chrome хочет быть первым...

/* THIS WORKS FOR ME */
@font-face {
    font-family: 'HLC';
    src: url('/_styles/hlc/hl-webfont.eot');
    src: url('/_styles/hlc/hl-webfont.svg#HLC') format('svg'),
         url('/_styles/hlc/hl-webfont.eot?#iefix') format('embedded-opentype'),
         url('/_styles/hlc/hl-webfont.woff') format('woff'),
         url('/_styles/hlc/hl-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

Надеюсь, это сработает и для вас. Наслаждаться!

person maximo    schedule 27.01.2012
comment
Я использовал Open Sans из веб-шрифтов Google и, прочитав это, проверил, какие шрифты включены в пакет. Он возвращает только файл woff, поэтому я пошел в fontsquirrel, скачал пакет и применил ваше исправление, это сработало! Это странно, потому что на сайте веб-шрифтов Google они также страдают от отсутствия сглаживания. - person madcapnmckay; 26.07.2012
comment
@tq Да, раньше это работало; до версии 18 или 19, я думаю, теперь он отображает текст SVG так же, как обычный текст. :( - person omninonsense; 14.11.2012
comment
Я не видел никаких изменений на своих сайтах в версии Chrome 23.0.1271.64 m. Не стесняйтесь, пишите мне в личку, я бы не прочь взглянуть, чтобы попытаться продублировать или помочь с проблемой. - person maximo; 16.11.2012
comment
У меня работает нормально, версия 25.0.1364.152 m и шрифты KaushanScript и Ubuntu. - person Bastien Jansen; 12.03.2013
comment
У меня отлично работало в хроме в окнах, с фаерфоксом не очень. - person Sem; 15.07.2013
comment
Это было нарушено в V22/23, но снова исправлено. Любой, кто использует современную версию, будет в порядке с этим решением. Подтверждено, что работает в версиях 29, 30, 31 и новейших версиях 32. - person Mike P.; 18.01.2014
comment
Постоянное использование SVG — не лучший способ, поскольку в SVG отсутствует подсказка. Без намеков шрифт выглядит более размытым, чем должен, в системах с включенным сглаживанием шрифтов. Поэтому я написал небольшой скрипт под названием Font Smoothie, который определяет, включено ли сглаживание шрифтов, и исправляет CSS только при необходимости. Я также создал генератор веб-шрифтов под названием Fontie, который принимает otf или ttf и генерирует пакет с правильными веб-шрифтами с подсказками. , CSS и Font Smoothie для вас. - person Torben; 31.01.2014

Я удивлен, что никто не упомянул об этом. Применение легкого -webkit-text-stroke помогает мне независимо от формата (расширения) используемого вами шрифта. Некоторые рекомендуют -webkit-text-stroke: 1px, но для меня это слишком сильно меняет внешний вид шрифта (сделайте его слишком сильным). Но 0,5px делает обводку почти незаметной и включает сглаживание:

-webkit-text-stroke: 0.5px;

Поместите его в свое определение css для тега html, и все готово!

person Pere    schedule 30.11.2012
comment
У меня здесь не работает (Chrome 24/Win XP/ClearType отключен). - person Torben; 17.03.2013
comment
Как это влияет на это в таких ОС, как OSX, которые по умолчанию правильно отображают шрифт? Сделает ли это его сверхсильным? - person TCB13; 30.04.2013
comment
Работает на Chrome 26.0.1410.64 Windows 7 ClearType включен. Но это все равно хак. Уже не тот шрифт. - person OneWorld; 21.05.2013
comment
Недавно у меня были проблемы с установкой глобальной обводки текста при работе с мобильными выпадающими меню с использованием jQuery, поскольку это иногда вызывает «задержку» в эффектах slideDown/slideUp/slideToggle, поэтому я немного осторожен в использовании этого метода css. в настоящее время. - person Harry Finn; 22.07.2013

Существует также шрифт под названием Vegur, который выглядит как Myriad Pro, но его можно встраивать в веб-сайты. Надеюсь, это поможет!

person Maximilian Motel    schedule 01.11.2010
comment
+1 есть много шрифтов, которые выглядят как Myriad, или, скорее, Frutiger, шрифт, на который Myriad «влиял». «Гуманистический sans, похожий на Frutiger» теперь стал почти отдельным жанром! - person bobince; 05.11.2010

Я провел небольшое исследование и нашел хак, который, как мне кажется, имеет значение. Поместите это в свой CSS с вашими переменными шрифта:

-webkit-transform: rotate(-0.0000000001deg);

Кроме того, я считаю, что полностью черный цвет (#000000) тоже не помогает. Использование очень темного, казалось, помогло мне.

person Sparky    schedule 16.01.2011
comment
Для меня сглаживание не применяется до rotate(-0.03deg). Кроме того, в Canvas вы можете сделать setTransform(1, 0.001, 0, 1, 0, 0), и он также будет сглажен. - person Zequez; 30.10.2011
comment
Обновление: больше не работает в Chrome 15.0.874.106 m. Хотя это работает в IE9 и Firefox - person Zequez; 04.11.2011

Изменение настроек в Windows или в самом браузере не является решением. Когда вы используете @font-face, вы хотите, чтобы шрифт хорошо выглядел на каждом экране в любом браузере, а не только в вашем.

Трюк с

text-shadow: 0 0 1px rgba(255,255,255,0.1);

or

-webkit-transform: rotate(-0.0000000001deg);

больше не работает в Chrome 16.0.912.63 m, Windows Vista.

Я не мог найти способ преодолеть эту проблему, хотя.

person Lubo Zviera    schedule 14.12.2011

Это код, который я использую для исправления «проблемы с рендерингом Chrome»:

@font-face {
    font-family: 'fontname';
    src: url('fonts/fontname.eot');
    src: url('fonts/fontname.eot') format('embedded-opentype'),
    url('fonts/fontname.svg') format('svg');
}

/*if mozilla*/
@-moz-document url-prefix() { 
    @font-face {
        font-family: 'fontname';
        src: url('fonts/fontname.ttf') format('truetype');
    }
}

:) это работает для меня... НАКОНЕЦ-ТО!

person apofiSSo    schedule 21.02.2013

-webkit-transform: повернуть (-0,0000000001 градус);

Обновление: больше не работает в Chrome 15.0.874.106 m. Хотя это работает в IE9 и Firefox

ОБНОВЛЕНИЕ: это работает (по крайней мере, для меня) в Chrome 15.0.874.121 m.

IE9 и Firefox не должны нуждаться в этом или быть нацелены на него, поскольку селектор указывает -webkit-.

person Matt Williams    schedule 23.11.2011