Разное отображение шрифтов в браузерах

Обновлено: 07.07.2024

Текст — основная часть контента на большинстве сайтов, и важно грамотно подходить к его отрисовке. В этой статье мы разберём базовые моменты, касающиеся подключения и оптимизации шрифтов.

Сразу стоит отметить, что самый простой вариант — вообще не подключать сторонние шрифты и пользоваться стандартными, которые предустановлены в большинстве операционных систем. Это хорошо знакомые Arial, Times New Roman и так далее — эти шрифты называются веб-безопасными, достаточно просто указать название одного из таких шрифтов в коде, и всё будет работать.

Но чаще всего дизайн макета не позволяет обойтись веб-безопасным шрифтом, а требует использовать какой-то нестандартный. В этом случае при загрузке страницы файл со шрифтом нужно подгружать с сервера по той же схеме, что и остальные ресурсы — CSS-файлы, изображения и так далее. Он может весить довольно много, именно поэтому для быстрой загрузки страницы выгоднее сначала рассмотреть возможность использования стандартных шрифтов. Но даже с нестандартными шрифтами можно избежать большинства проблем, если уделить внимание оптимизации.

Для начала стоит выбрать правильный формат шрифта. TTF и OTF — форматы, которые предоставляются с минимальным сжатием или совсем без него. Их стоит использовать только в том случае, если нужна поддержка очень старых браузеров. Во всех остальных ситуациях можно выбрать WOFF и WOFF2 — форматы, которые отличаются высокой степенью сжатия. WOFF2 — усовершенствованная версия предшественника, этот формат можно считать лучшим из существующих. Тем не менее, поддержка WOFF2 хотя и очень хорошая, но пока не абсолютная, поэтому в качестве подстраховки для не самых современных браузеров стоит использовать WOFF.

Подключение шрифтов с помощью Google Fonts

Есть простой и удобный способ подключить нестандартный шрифт — использовать Google Fonts. Это бесплатный сервис, с помощью которого можно подключать шрифты, но не хранить их на своём сервере. Чтобы им воспользоваться, необходимо выбрать шрифт и добавить одно или несколько нужных начертаний, а затем вставить в <head> ссылку, которую сгенерирует Google Fonts во вкладке Embed.

Интерфейс Google Fonts

Этого достаточно, чтобы шрифт подключился. Теперь его можно использовать в свойстве font-family без каких-либо дополнительных действий.

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

Плюсы этого способа — простота использования и всегда актуальные версии шрифтов, Google Fonts их часто обновляет. Но у него есть и минус — запросы к сторонним серверам могут негативно повлиять на скорость загрузки страницы. Если выбираете этот способ, стоит обратить внимание на оптимизацию.

Подключение шрифтов с помощью правила @font-face

Есть альтернативный способ, при котором файлы со шрифтами хранятся вместе с остальными ресурсами сайта. Для них принято заводить отдельную директорию в корне проекта — например, fonts . В неё следует поместить файлы для каждого начертания в нужных форматах — в большинстве случаев, если не требуется поддержка старых браузеров, подойдут .woff и .woff2 , о которых мы говорили ранее. Шрифты можно скачать на различных ресурсах. При этом всегда нужно обращать внимание на лицензию — некоторые шрифты могут быть недоступны для коммерческого использования.

После того, как шрифты добавлены в проект, их нужно подключить в CSS-файле. Для этого используется правило @font-face . В самом базовом варианте оно будет включать:

Название шрифта, которое затем нужно использовать, чтобы задать элементам подключённый шрифт.

Адрес файла со шрифтом, который нужно подключить, и его формат. Если адресов несколько, их можно указать через запятую. В этом случае важен порядок — браузер будет последовательно пытаться подключить файлы. Первым должен быть самый подходящий формат, а далее — запасные варианты.

Также с помощью функции local можно добавить возможность перед загрузкой шрифта с сервера проверить, установлен ли он на компьютере пользователя. Если да, запроса к серверу за шрифтом не будет — при рендеринге используется локальная версия. Но у этого способа есть минус — шрифт на компьютере пользователя может быть устаревшим, и тогда страница отобразится не совсем так, как было задумано.

Начертания: жирное, курсивное и так далее. Для каждого начертания нужно отдельное правило @font-face .

Базовый вариант правила:

Для улучшения производительности правило @font-face лучше всего прописывать в самом начале CSS-файла. Так браузер сможет раньше начать обработку шрифта.

Оптимизация

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

FOIT, FOUT и FOFT

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

FOIT (Flash of Invisible Text) — с англ. «мелькание невидимого текста». При таком поведении, пока шрифт не загрузится, текст не отображается и появляется только после загрузки шрифта. Значительная проблема — во время загрузки нет доступа к текстовому контенту.

FOUT (Flash of Unstyled Text) — с англ. «мелькание неоформленного текста». Во время загрузки используется шрифт, заданный по умолчанию (системный, например), а после загрузки страница перерисовывается с использованием загрузившегося шрифта. Эта перерисовка довольно заметна и может быть нежелательна.

FOFT (Flash of Faux Text) — с англ. «мелькание синтезированного текста». Это поведение можно наблюдать в промежутке, когда основное начертание уже загрузилось, а дополнительные (жирное, курсивное и так далее) — нет. Браузер имитирует нужное начертание до загрузки настоящей версии. В этом случае страница может перерисовываться несколько раз по мере загрузки начертаний.

В разных браузерах логика рендеринга текста во время загрузки шрифта отличается. Например, Chrome и Firefox в течение трёх секунд не отрисовывают ничего, затем используют веб-безопасный шрифт, а после окончания загрузки текст перерисовывается. IE поступает похоже, но при этом не ждёт три секунды. Подобное поведение в разных браузерах можно унифицировать, используя свойство font‑display .

Свойство font-display

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

  • auto — поведение по умолчанию, зависит от браузера.
  • block — текст не отображается в течение короткого периода (3 секунды), затем отрисовывается запасной шрифт, если основной ещё не загрузился. Как только загрузка завершается, текст перерисовывается снова.
  • swap — сразу же отрисовывается запасной шрифт, после загрузки шрифта — повторный рендеринг.
  • fallback — в течение очень короткого периода (100 миллисекунд) не отображается ничего, затем браузер использует запасной шрифт и ждёт 3 секунды — если шрифт всё ещё не загрузился, остаётся запасной шрифт. Далее не важно, загрузился шрифт или нет, замена не произойдёт. Если шрифт загрузится, то он применится только при обновлении страницы.
  • optional — текст не отображается в течение 100 миллисекунд, а затем отрисовывается запасным шрифтом. Даже если шрифт загрузится после этого, замена произойдёт только при обновлении страницы.

Оптимальное значение — swap , его можно использовать в большинстве случаев, оно удобно для пользователей. При подключении шрифта с помощью Google Fonts это значение установлено по умолчанию. Если же есть необходимость избежать мелькания текста (например, для вдумчивого чтения), подойдёт optional .

Предзагрузка шрифтов

Ещё один способ оптимизации — предварительная загрузка шрифтов. С её помощью можно изменить обычную приоритизацию загрузки ресурсов, тем самым сказав браузеру, что важно загрузить шрифт в первую очередь.

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

Для того, чтобы предзагрузка сработала, нужно поместить в <head> ссылку на шрифт и задать атрибуту rel значение preload :

Также необходимо добавить тип ресурса, в данном случае — font . Предзагружать можно и другие ресурсы — CSS-файлы, изображения и так далее.

Уменьшение количества глифов шрифта

По умолчанию шрифт может содержать глифы (буквы, символы) разных языков и просто редко используемые. С помощью свойства unicode-range можно установить диапазон нужных символов в системе Unicode, тогда браузер будет подгружать сабсет (подмножество) шрифта только в тот момент, когда на странице появится символ из этого диапазона. Предварительно нужно подготовить файлы шрифтов, разбив их на группы.

Например, можно отдельно подключить латиницу и кириллицу, если на сайте представлены версии на двух языках. И с помощью unicode-range браузер поймёт, какой сабсет нужен для конкретной страницы, и загрузит только его. Такой файл будет иметь меньший вес и ускорит загрузку страницы.

Также можно проанализировать, какие конкретно глифы используются на сайте и создать кастомный сабсет исключительно с ними. Для этого есть специальные инструменты.

Google Fonts по умолчанию использует сабсеты. Это можно увидеть, открыв CSS-файл, который подключается в <head> при использовании сервиса. Для каждого языка есть отдельный сабсет. Пример для латиницы и кириллицы:

В статье разобраны только базовые способы оптимизации шрифтов. Но даже их достаточно, чтобы улучшить пользовательский опыт и значительно уменьшить вес файлов шрифтов, ускорив тем самым загрузку страницы.

Полезности

Подключение шрифтов — часть вёрстки

А научиться вёрстке проще, чем кажется. Скидка 1000₽ по промокоду SKUCHNO.

Ребят, приветствую) Думаю, многие сталкивались с проблемой нечеткого шрифта в новых версиях Google Chrome. Как и многие, я долго мучался с этой проблемой и помогало только полная очистка кэша и временных файлов. И как назло в интернете все решения либо неактуальные, либо нерабочие.

Недолго порыскав в настройках хрома нашел функцию, которая отключает злополучное "Масштабирование FontCache". Представляю решение на общее обозрение:

1. Убедитесь, что у Вас в OS Windows включен ClearType. Это можно сделать следующим способом:

В строке поиска меню пуск набираем "ClearType" и настраиваем шрифт по своему вкусу.

Исправляем кривой шрифт в Google Chrome ВКонтакте, Google Chrome, Шрифт, Фикс, Font

Исправляем кривой шрифт в Google Chrome ВКонтакте, Google Chrome, Шрифт, Фикс, Font

Извиняюсь, если для кого-то боянисто, но мне не удалось найти подобного решения в интернете. Надеюсь Вам помогло :)

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

Спасибо, покрыло кучу инструкций, эта помогла

Спасибо! сколько времени прошло, а проблема до сих пор актуальна

БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ ТЕБЕ СПАСИБО! мучались два года с этим шрифтом..

Димка Зорин - красавчик

Спасибо большое! Мои глаза будут благодарны тебе всю оставшуюся жизнь!

У меня всё получилось! Спасибо автору!))

Какая версия браузера ,у меня версия 76.0.3809.100 (Официальная сборка), (64 бит) в ней уже нет такого пункта.

Ай дорогой иди обниму! Помогло =)

Красавчик, спасибо от души! Буду в Новосибирске - привезу пиво, ты спас мои глаза!))

Большое спасибо за дельный совет! Мучался изза этого сильно.

В новой версии хрома, под английским языком как у меня, надо отключить вот это:

Font Access APIs

Enables the experimental Font Access APIs, giving websites access to enumerate local fonts and access their table data. – Mac, Windows, Linux, Chrome OS, Android

Купил новый хард, ставлю свежие проги и т.д., столкнулся с проблемой кривого шрифта. Благодаря этой короткой статье всё решил за 30 секунд. Плюсую :)

Спасибо большое, и за ссылку точную спасибо

Мои глаза тебе очень признательны)

автор, если есть еще идеи для нового хрома, буду рад посту) спасибо

Спасибо огромное! Здоровья вам!)

спасибо тебе большое!

Работает. Спасибо тебе

Ты меня спас просто.)

Я - тестер и я хотел уже наехать на разработчиков из-за поехавших шрифтов, но увидел, что в Опере всё окей. Думал, что схожу с ума, но нет.)

Годно, спасибо, получилось!!) А то я уже глаза сломала :DD

Огроменное спасибо! Мог бы поставить 1000 плюсов, поставил бы 100000 :)

Сегодня утром была такая проблема. Не вижу ничего и все - ближе к монитору приходилось наклоняться, чтоб рассмотреть. Помог сон) 5 часов продрых и буквы видать четенько )

Это, конечно, помогает где-то, но, например, в чате твича остаётся жутчайшее мыло. Я даже бросил смотреть через браузер и перешёл на плеерную альтренативу с чатиком через irc-клиент.

У меня другая проблема :)) При переключении видео в полный экран с любого сайта через гугл хром - черный экран, звук есть видео идет, но черный экран. Так же было и с еджем, то убрав галки ActiveX вроде в едже стало норм. А вот в хроме черный экран всякий раз как разворачиваю полный экран :( Печаль


Специалисты компании Proofpoint предостерегают пользователей Windows и браузера Chrome: хакеры придумали новый трюк и теперь маскируют свои атаки под загрузку дополнительного пакета шрифтов.

Поверх страницы, которая становится нечитаемой из-за действий скрипта, атакующие выводят всплывающее окно, которое сообщает жертве, что на ее компьютере не хватает некоего специфического шрифта, и для нормальной работы ресурса шрифт необходимо скачать и установить. Закрыть это окно, нажав на крестик в углу, не получится.

Согласно данным специалистов Proofpoint, эта кампания использует известную цепочку заражений EITest, впервые задокументированную еще в 2014 году. Тогда EITest прочно ассоциировалась с атаками различных эксплоит-китов (к примеру, Angler и Neutrino), которые заражали пользователей шифровальщиками, вредоносами для похищения данных и прочей малварью. Операторы EITest использовали простую тактику, очень похожу на описанную выше: они компрометировали большое количество сайтов, эксплуатируя известные уязвимости (преимущественно жертвами становились ресурсы, работающие под управлением WordPress и Joomla). Затем злоумышленники перенаправляли небольшую часть трафика с зараженных ресурсов на вредоносные страницы, подвергая пользователей атакам эксплоит-китов и заражая их вирусами.

При этом злоумышленники всегда действовали выборочно, отбирая пользователей, подходящих под те или иные критерии. Новая вредоносная кампания тоже опасна только для пользователей из определенных стран (каких именно, эксперты не сообщают), использующих Chrome и Windows.

Исследователи сообщают, что пока новая вредоносная кампания распространяет крик-фрод вредоноса Fleercivet, который за спиной пользователя скликивает рекламу, принося деньги своим владельцам.

Изменился шрифт в браузере как вернуть старый

В каждом браузере есть шрифты, которые в нём установлены по умолчанию. Изменение стандартных шрифтов может не только испортить внешний вид браузера, но и нарушить работоспособность некоторых сайтов.

Причины изменения стандартных шрифтов в браузерах

Если вы ранее не меняли стандартные шрифты в браузере, то они могли измениться по следующим причинам:

  • Другой пользователь редактировал настройки, но при этом вас не предупредил;
  • На компьютер попал вирус, который пытается изменить настройки программ под свои нужды;
  • Во время установки какой-либо программы вы не сняли галочки, которые могли отвечать за изменения стандартных настроек браузеров;
  • Произошёл системный сбой.

Способ 1: Google Chrome и Яндекс.Браузер

Если у вас сбились настройки шрифтов в Яндекс.Браузере или Google Chrome (интерфейс и функционал обоих браузеров очень схож между собой), то вы сможете их восстановить, используя данную инструкцию:

  1. Нажмите на иконку в виде трёх полос в верхнем правом углу окна. Откроется контекстное меню, где вам нужно выбрать пункт «Настройки».

Открытие настроек в Яндекс Браузере

Просмотр дополнительных настроек в Яндекс Браузере

Настройки шрифта в Яндекс

Данная инструкция больше всего подходит для Яндекс.Браузера, но может быть использована и для Google Chrome, правда, в этом случае вы можете столкнуться с некоторыми незначительными отличиями в интерфейсе.

Способ 2: Opera

Для тех, кто пользуется Оперой, как основным браузером, инструкция будет выглядеть немного по-другому:

    Если вы используете последнюю версию Opera, то тогда нажмите на логотип браузера в верхнем левом углу окошка. В контекстном меню выберите «Настройки». Также можно воспользоваться удобной комбинацией клавиш Alt+P.

Переход к настройкам в Opera

Шрифтовые настройки в Опере

Способ 3: Mozilla Firefox

В случае с Firefox инструкция по возврату стандартных шрифтовых настроек будет выглядеть следующим образом:

    Чтобы открыть настройки, нажмите по иконке в виде трёх полос, которая расположена прямо под крестиком закрытия браузера. Должно всплыть небольшое окно, где нужно выбрать иконку шестерёнки.

Открытие настроек в Mozila

Настройки шрифта в Mozila

Способ 4: Internet Explorer

Если вы предпочитаете использовать в качестве основного браузера Internet Explorer, то восстановить шрифты в нём можно следующим образом:

    Для начала зайдите в «Свойства браузера». Чтобы это сделать, воспользуйтесь иконкой шестерёнки в верхнем правом углу.

Переход к свойствам Internet-Explorer

Свойства браузера Internet-Explorer

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: