Как использовать подключенный шрифт css
Перейти к содержимому

Как использовать подключенный шрифт css

  • автор:

Почему не подключается конкретный шрифт?

Почему-то не подключается конкретный шрифт в CSS. Пример рабочего кода:

font-family: 'Open Sans'; src: url('fonts/Open_Sans/OpenSans-SemiBold.ttf'), url('fonts/Open_Sans/opensans-semibold-webfont.woff2') format('woff2'), url('fonts/Open_Sans/opensans-semibold-webfont.woff') format('woff'); font-weight: normal; font-style: normal; 

А эта часть отказывется работать:

font-family: 'Poppins'; src: url('fonts/Poppins/Poppins-Medium.ttf') url('fonts/Poppins/poppins-medium-webfont.woff2') format('woff2'), url('fonts/Poppins/poppins-medium-webfont.woff') format('woff'), url('fonts/Poppins/Poppins-Medium.eot'); font-weight: normal; font-style: normal; 

Уже конвертировал в разные форматы, проверял пути и т.д.
Что характерно, в режиме разработчика стиль отображается. Текст на латинице, так что конфликт с кириллицей отпадает.
Как видите, имеется рабочий шрифт, лежащий в соседней папке, и подключенный абсолютно таким же способом. И он работает.

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

Бывало ли так, что вы видите на веб-странице картинки и оформление, но не видите текста — он появляется на пару (десятков) секунд позже? Это загружаются кастомные веб-шрифты. Объясняем, почему это происходит и как этого избежать.

Классический вопрос на собеседовании ops-инженеров и программистов: вы написали в адресной строке браузера habr.com и нажали Enter. Что произойдет? (Ответ на 10 страницах)

Ок, мы указали для своего текста font-family: PFRegal, «Times New Roman». Что произойдет?

Браузер посмотрит, есть ли для PFRegal объявление font-face. Если оно есть, то начнется загрузка файла шрифта. Что будут видеть читатели те секунды (десятки секунд на 3G), пока происходит загрузка?

В Safari: ваш текст будет занимать на странице место, но останется прозрачным, то есть невидимым для читателя. Для расчета занимаемого пространства используется fallback font (стандартный шрифт, в нашем случае Times New Roman), об этом чуть ниже.

В Chrome и Firefox 3 секунды прозрачного текста, далее используется системный fallback font.

В IE сразу покажется fallback font.

image

IE не так уж и плох!

Все три подхода соответствуют стандарту: „in cases where textual content is loaded before downloadable fonts are available, user agents may render text as it would be rendered if downloadable font resources are not available or they may render text transparently with fallback fonts to avoid a flash of text using a fallback font.“

Как бороться с «прозрачным текстом» в Safari и Chrome?

Есть несколько способов:

    Сделайте отдельный css-файл с инлайном шрифта, подключайте его после html кода с текстом. HTML документ обрабатывается (и отображается на экране) от начала файла к концу, по мере загрузки. Это дает возможность управлять шрифтами даже без использования JavaScript. Важно сделать именно инлайн, а не подключение внешнего файла шрифта. Способ не работает в Desktop Safari и может не сработать, если между запросом на рендеринг текста текстом и подключением css-шрифта нет достаточного промежутка по времени, экспериментируйте.

Теперь оно моргает при рефреше!

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

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

Важно не забыть некоторые системные вещи:

    Настроить нормальное кеширование на стороне сервера (cache headers).

Как проверить, что все работает нормально? У меня слишком быстрый интернет

    Используйте встроенные средства Google Chrome.

image

Возможность сэмулировать плохой интернет. Good 3G — наш выбор для отладки Медузы

image

Сброс кеша по правой кнопке мыши (работает только если открыты Developer Tools)

А также суперзнание, как заблокировать загрузку определенного адреса или даже маску адресов в Хроме: включите Developer Tools Experiments в chrome://flags → Откройте Chrome Developer Tools → Настройки (спрятаны в трех точках в правом верхнем углу) → Experiments → Нажмите Shift 6 раз → Поставьте галочку Request blocking.

image
Теперь вы можете сделать вот так

  • Для отладки в Desktop Safari потребуется установить Network Link Conditioner (для скачивания необходим Apple Developer Account). Для отладки iOS Safari и iOS Webview используйте Network Link Conditioner в настройках вашего устройства (Settings → Developer → Network Link Conditioner). Учтите, настройки ограничения скорости применятся на всю систему, а не только на Safari.
  • Как насчет нового стандарта?

    Всегда пожалуйста. Вот свойство font-display, доступное в Chrome Canary. Оно решает все проблемы, перечисленные в статье. Ещё года 2–3 и можно будет вздохнуть спокойно.

    Я перфекционист, есть ли что еще улучшить?

    Конечно! Сожмите файл шрифта, настроив его под себя. Вырежьте глифы, которые вы не используете в текстах (у Регала их по умолчанию более 800). Отключите лишние Open Type Features. Для всего этого вам потребуется специальный софт [1], [2] или [3] и понимание того, как устроены шрифты.

    Вывод?

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

    • Веб-разработка
    • Программирование
    • Тестирование веб-сервисов

    MagentaWAVE

    Примеры и готовые решения для оформления блога и сайта. Разработка и дизайн шаблонов Blogger.

    12 февраля 2016

    Подключение и использование иконочных шрифтов

    Дорожный знак 100 на дороге уходящей в даль

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

    Два наиболее популярных ресурса это Font Awesome и Fontello, первое(и главное) — они бесплатны; второе — Font Awesome — предоставляет публичную ссылку для прямой загрузки шрифта со своего хостинга, то есть не нужно использовать свой или искать сторонний хостинг для размещения необходимых файлов, в Fontello можно собрать свой собственный шрифт, загружая на сайт иконки в .svg формате, или выбрать из общего набора именно те, которые нужны в данном случаи, а не загружать всё что есть.

    Как подключить иконочный шрифт к сайту

    Способов подключения на данный момент существует три:

    1. Если доступна, использовать общую(публичную) прямую ссылку на хостинг сервиса, которую нужно разместить внутри раздела , лучше повыше или перед закрывающим , это уже как пойдет.
    Для Font Awesome последняя версия ссылки выглядит так:

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

    — дать путь только к папке:

    — удаленно подключить файлы с CSS из соответствующей папки:

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

    @font-face <
    font-family: ‘fontello’;
    src: url(‘..путь-к-файлу/fontello.eot‘);
    src: url(‘..путь-к-файлу/fontello.woff‘) format(‘woff’),
    url(‘..путь-к-файлу/fontello.ttf‘) format(‘truetype’),
    url(‘..путь-к-файлу/fontello.svg#fontello‘) format(‘svg’);
    font-weight: normal;
    font-style: normal;
    >

    Как использовать иконочный шрифт на сайте

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

    Если воспользоваться вторым вариантом — подключить шрифт используя CSS-файлы, возможно добавление знаков как с помощью класса, так и кода:

    1. Создать пустой элемент с классом иконки и добавить его перед нужным блоком:

    2. Добавить класс с названием символа к нужному элементу:

    3. Добавить в CSS псевдоэлемент для элемента с иконкой, который будет содержать UTF-код желаемого символа и указывать на используемый шрифт (в данном примере — Fontello):

    ul li a::before <
    content: ‘\e80a‘;
    font-family: «fontello»;
    font-style: normal;
    font-weight: normal;
    >

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

    [class^=»icon-«]::before,
    [class*=» icon-«]::before font-family: «fontello»;
    font-style: normal;
    font-weight: normal;
    >
    .icon-doc-inv::before content: ‘\e801‘;
    >
    .icon-mail-alt::before content: ‘\e805‘;
    >

    но можно обойтись и без нее, запись вида:

    будет работать все равно.

    Как использовать подключенный шрифт css

    чёрная пятница до 19.11

    BLACKFRIDAY2023

    Подключение и использование вариативных шрифтов

    Подключение и использование вариативных шрифтов

    16 ноября 2023

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

    В чем суть «вариативности» шрифтов

    • Статические шрифты имеют ограниченный набор начертаний, которые иногда сводится к трем вариантам жирности / высоты для диапазонов 100-400 / 500-600 / 700-900.
    • Вариативные шрифты содержат множество вариаций толщины, ширины и даже угла наклона шрифта. Каждый из этих параметров регулируется своей осью. Ниже приведен пример изменения шрифта по осям ширины и жирности.
    • Второе существенное отличие вариативных шрифтов: в проект они подключаются они одним файлом, а нескольками файлами разной жирности. При чем если в вашем проекте шрифт варьируется только по одной оси, вариативный файл шрифта будет занимать меньше места, чем несколько файлов одного семейства. Однако, если шрифт меняется по нескольким осям, размер файла может превышать 180 КБ.
    • Создать свой вариант вариативного шрифта можно с помощью сторонних приложений. Например, Axis-Praxis, Glyphs или FontLab. В своей практике я использовал Axis-Praxis, т.к. он прост в использовании и не требуют установки.

    Варианты подключения

    • Для подключения вариативных шрифтов сначала изменим дерективу @font-face. Изменим такую запись:
    @font-face < font-family: "FontFamilyName"; src: url("path/FontFamilyName.woff2") format("woff2"), url("path/FontFamilyName.woff") format("woff"); >
    • на такую:
    @font-face < font-family: "FontFamilyName"; src: url("path/FontFamilyName-VF.woff2") format("woff2"); >

    Далее в CSS при подключение шрифтов используем at правило @supports. Тем самым мы создаем проверку, поддерживает ли браузер конечного пользователя вариативные шрифты или нет. К слову поддержка у вариативных шрифтов ~ 94%.

    @supports (font-variation-settings: normal) < body < font-family: FontFamilyName-VF; >> body
    • Важно отметить два момента:
    1. при использование at правила @supports необходимо будет подключить и вариативную, и статическую версию шрифта.
    2. Существуют и другие методы указать браузеру интерпретировать подключенный шрифт как вариативный Однако эти альтернативные методы имеют низкую браузерную поддержку. Со временем спецификация @font-face будет стандартизирована для всех браузеров. В настоящее время можно написать дескриптор tech(‘variations’), который скажет браузеру, что подключенный шрифт является вариативным. и выглядить это будет следующим образом.
    @font-face < font-family: "FontFamilyName"; src: url("path/FontFamilyName-VF.woff2") format("woff2") tech("variations"); >
    • Но данный момент tech(‘variations’) имеет незначительную браузерную поддержку, чтобы использовать его в проектах.

    Регулируем диапазон значений шрифта

    • Третьим важным отличием вариативных шрифтов является указания диапазонов для свойств font-weight и font-stretch вместо конкретных значений. Если эти диапазоны не указаны явно, браузер может решить взять значения этих свойств не из загруженного шрифта, а подставить свое значения по умолчанию. Поэтому важно явно указать значения для этих свойств.
    • Чтобы определить диапазоны и способ изменения конкретного шрифта, необходимо обратиться к документации, прилагаемой к вариативному шрифту. Если ее нет, можно использовать внешние сервисы, такие как Dinamo Font Gauntlet или Wakamai Fondue, чтобы определить диапазоны значений и то, как изменяется конкретный вариативный шрифт.
    • Указать диапазон жирности / ширины шрифта можно либо внутри at правила @font-face:
    @font-face < font-family: "FontFamilyName"; src: url("path/FontFamilyName-VF.woff2") format("woff2"); font-weight: 350 900; font-stretch: 75% 200%; >
    • либо внутри селектора, к которому применяться шрифт:
    @supports (font-variation-settings: normal) < body < font-family: FontFamilyName-VF; font-weight: 350 900; font-stretch: 75% 200%; >> body

    Свойство font-variation-settings

    • Свойство font-variation-settings объединяет диапазоны значений свойств font-weight, font-stretch, font-style. Значение свойства задается с помощью списка пар «ось-значение», где каждая ось идентифицируется своим четырехбуквенным тегом (например, «wght» для жирности, «slnt» для наклона), а значение соответствует числовой позиции на оси.
    • Крайне важно осознавать тот факт, что свойство font-variation-settings не является наследуемым. Это означает, что его нельзя просто указать в теге body и ожидать, что значение свойства будет применено ко всем элементам на странице. Его следует добавить к описанию тех селекторов, в которых нужно изменить варианты шрифта.
    @supports (font-variation-settings: normal) < body < font-family: FontFamilyName-VF; font-weight: 350 900; font-stretch: 75% 200%; font-style: oblique -10deg; >> body < font-family: FontFamilyName; >.menu__item

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *