Modern and simple css @font-face generator

Мелькание неоформленного текста с помощью класса

С помощью API загрузки CSS-шрифтов (и полифила для него) определяйте, когда загрузился тот или иной шрифт, и применяйте его в своем CSS только после успешной загрузки. Обычно это означает переключение класса в элементе . Добавьте по вкусу миксины SASS или LESS, чтобы было проще поддерживать.

  • Демо: FOUT с помощью класса (включает трюк с sessionStorage для оптимизации повторных просмотров)
  • Подробнее: «Улучшенный с событиями загрузки шрифта» на Dev.Opera и «Загрузка шрифта (обновленная версия) с событиями» на Filament Group Lab.

Плюсы

  • Скорость отрисовки: устраняет FOIT. Метод испытан и проверен. Это .
  • Гибкость: легко группировать запросы в одну перерисовку (используйте один класс для загрузки нескольких шрифтов).
  • Масштабируемость: запросы происходят параллельно.
  • Надёжность: если запрос не сработает, запасной вариант текста всё равно отображается.
  • Хостинг: работает независимо от загрузчика шрифта (легко реализовать для стороннего хоста или существующих блоков )
  • Отличная поддержка браузерами, полифилл обычно работает везде, где поддерживаются шрифты.
  • Хорошая поддержка в перспективе: полифиллы не зависят от форматов шрифта и должны работать для существующих блоков . Это означает, что с появлением нового формата можно просто изменить font-face, как обычно.
  • Не требует модификации шрифтов (через выбор набора символов или как-то иначе). Совместимо с лицензиями.

Минусы

  • Надо очень тщательно следить за CSS. Одно-единственное объявление веб-шрифта, не защищенное классом , запросто может вызвать FOIT.
  • Обычно требует жёстко прописывать шрифты, которые нужно загрузить на странице. Это означает риск, что однажды на шрифты уйдет больше трафика, чем нужно для страницы. Помните, что с простым современные браузеры загрузят только используемые на странице шрифты. Это не требует лишних затрат. Вот почему New York Times живёт себе с сотней разных блоков на домашней странице — браузер загружает только небольшую их часть. С этим подходом нужно сказать браузеру, какие шрифты загружать, независимо от использования.

Значения правила

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

src
Определяет URL-адрес(ы), откуда шрифт должен быть загружен. Обязательное значение. Допускается указывать шрифт на локальном компьютере пользователя по имени, используя следующий синтаксис:
@font-face{font-family: «Font Name»;src: local(«Font Name»), url(«/fonts/Font Name.woff2») format(‘woff2’), url(«/fonts/Font Name.woff») format(‘woff’), url(‘/fonts/Font Name.ttf’) format(‘truetype’); }
Если в этом случае шрифт не найден на локальном компьютере пользователя, то будет осуществлен поиск в других указанных источниках.
font-stretch
Определяет как шрифт должен быть растянут. Значение по умолчанию — «normal». Необязательное значение.

font-style
Задает стиль
шрифта (обычный | курсивный | наклонный). Значение по умолчанию — «normal». Необязательное значение.

font-weight
Устанавливает насколько жирным будет выглядеть текст. Значение по умолчанию — «normal». Необязательное значение.

unicode-range
Определяет диапазон символов Unicode, которые шрифт поддерживает. Значение по умолчанию — «U+0-10FFFF». Необязательное значение.
С помощью данного дескриптора диапазона Unicode мы можем создать разделенный запятыми список значений диапазона

Каждый из них может быть указан в одной из трех форм:
Одна кодовая точка (например, U+416).
Начальную и конечную кодовые точки диапазона (например, U+400-4ff).
Подстановочный диапазон (например, U+4??) — символы ‘?’ обозначают любое шестандцатиричное число.

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

Пример использования

Для добавления шрифта на страницу Вам необходимо:

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

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

  1. Переходим на сайт службы Google Fonts.
  2. Выбираем понравившийся нам шрифт, я остановился на шрифте без засечек Roboto, Вы можете найти его в поиске, либо выбрать любой другой:
  3. После этого необходимо добавить его в коллекцию (у Вас должен быть создан аккаунт Google):
  4. После добавления шрифта в коллекцию, для Вас будет доступна возможность скачать его:
  5. Распакуйте архив со шрифтами в директорию, из которой они будут подключаться к Вашей веб-странице, либо страницам:

Как Вы можете заметить, в архиве содержится 12 различных шрифтов. Исходя из названий можно установить, что, например, Roboto-Italic предназначен для курсивного стиля шрифта, Roboto-Bold для жирного начертания шрифта, Roboto-BoldItalic для курсивного жирного начертания и так далее.

Еще раз обращаю Ваше внимание, что один файл шрифта содержит:

  • одну плотность шрифта.
  • один стиль для этого шрифта.

Технические характеристики

Выходная мощность 120 Вт
Встроенный селектор зон Нет
Встроенный источник аудиосигнала Нет
Регулировки Громкость (общая/поканальная), Темброблок (НЧ/ВЧ)
Дополнительно Приоритетный аудиовход, Установка в стойку 19″
Выходной сигнал
  • высоковольтный
    100 В, 70 В
  • низкоомный
    8 Ом
Аудиовходы
  • линейные
    4×RCA
  • микрофонные
    4×TRS 6.35 мм
Габариты (Ш × В × Г) 430 × 100 × 300 мм
Масса (нетто) 9.2 кг

Общие характеристики

Тип устройства Трансляционный усилитель
Класс усилителя AB
Отношение сигнал шум (SNR) ≥ 60dB
Воспроизводимый диапазон частот 100 Гц – 16 кГц
Выходная мощность 120 Вт
Количество каналов усиления 1
Коэффициент нелинейных искажений (THD)
Высоковольтные
Выход OUT
Низкоомные

Аудиовходы

Канал 1 (MIC1)
  • микрофонный
    TRS 6.35 мм
  • микрофонный
    TRS 6.35 мм
Канал 3 (MIC3)
Канал 5 (AUX2)
Канал 2 (MIC2)
Канал 4 (AUX1)
Микрофонные (MIC 1 — 3) 6 мВ / 600 Ом
Линейный (OUT) 1 В / 600 Ом
Линейные (AUX 1 — 2) 250 мВ / 10 кОм

Питание

Тип блока питания Трансформаторный
Напряжение питания AC 230 В, 50 Гц
Тип исполнения блока питания Внутренний
Потребляемая мощность
  • полная нагрузка
    240 Вт
  • холостой режим
    5 Вт
Тип системы охлаждения Активная
Количество вентиляторов 1 (без регулировки скорости вращения)

Конструкция

Материал корпуса Алюминий, Сталь
Цвет корпуса Чёрный
Установка в стойку 19″ Да (монтажные уголки в комплекте)
Габариты
  • ширина
    430 мм
  • высота
    100 мм
  • глубина
    300 мм
Высота в юнитах 2U
Масса (нетто) 9.2 кг

Теги HTML

c http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>lass=»block_content scroll»>

  • Все теги
  • Валидация тегов
    • accesskey
    • charset
    • coords
    • download
    • href
    • hreflang
    • name
    • rel
    • rev
    • shape
    • tabindex
    • target
    • title
    • type
  • title

    • align
    • alt
    • archive
    • code
    • codebase
    • height
    • hspace
    • vspace
    • width
    • accesskey
    • alt
    • coords
    • href
    • hreflang
    • nohref
    • shape
    • tabindex
    • target
    • type
    • autoplay
    • controls
    • loop
    • muted
    • preload
    • src
    • href
    • target
    • color
    • face
    • size
  • dir

    • balance
    • loop
    • src
    • volume
    • alink
    • background
    • bgcolor
    • bgproperties
    • bottommargin
    • leftmargin
    • link
    • rightmargin
    • scroll
    • text
    • topmargin
    • vlink
  • clear

    • accesskey
    • autofocus
    • disabled
    • form
    • formaction
    • formenctype
    • formmethod
    • formnovalidate
    • formtarget
    • name
    • type
    • value
    • align
    • valign
    • align
    • char
    • charoff
    • span
    • valign
    • width
    • align
    • char
    • charoff
    • span
    • valign
    • width
    • cite
    • datetime
    • align
    • title
    • align
    • height
    • hidden
    • hspace
    • pluginspage
    • src
    • type
    • vspace
    • width
    • disabled
    • form
    • title
    • color
    • face
    • size
    • accept-charset
    • action
    • autocomplete
    • enctype
    • method
    • name
    • novalidate
    • target
    • bordercolor
    • frameborder
    • name
    • noresize
    • scrolling
    • src
    • border
    • bordercolor
    • cols
    • frameborder
    • framespacing
    • rows
  • align

  • align

  • align

  • align

  • align

  • align

  • profile

    • align
    • color
    • noshade
    • size
    • width
    • manifest
    • title
    • xmlns
    • align
    • allowtransparency
    • frameborder
    • height
    • hspace
    • marginheight
    • marginwidth
    • name
    • sandbox
    • scrolling
    • seamless
    • src
    • srcdoc
    • vspace
    • width
    • align
    • alt
    • border
    • height
    • hspace
    • ismap
    • longdesc
    • lowsrc
    • src
    • usemap
    • vspace
    • width
    • accept
    • accesskey
    • align
    • alt
    • autocomplete
    • autofocus
    • border
    • checked
    • disabled
    • form
    • formaction
    • formenctype
    • formmethod
    • formnovalidate
    • formtarget
    • list
    • max
    • maxlength
    • min
    • multiple
    • name
    • pattern
    • placeholder
    • readonly
    • required
    • size
    • src
    • step
    • tabindex
    • type
    • value
    • cite
    • datetime
    • accesskey
    • for
    • accesskey
    • align
    • title
    • type
    • value
    • charset
    • href
    • media
    • rel
    • sizes
    • type
  • name

    • behavior
    • bgcolor
    • direction
    • height
    • hspace
    • loop
    • scrollamount
    • scrolldelay
    • truespeed
    • vspace
    • width
    • label
    • type
    • charset
    • content
    • http-equiv
    • name
    • high
    • low
    • max
    • min
    • optimum
    • value
    • align
    • archive
    • classid
    • code
    • codebase
    • codetype
    • data
    • height
    • hspace
    • tabindex
    • type
    • vspace
    • width
    • reversed
    • start
    • type
    • disabled
    • label
    • disabled
    • label
    • selected
    • value
  • align

    • name
    • type
    • value
    • valuetype

Типы тегов

HTML5

Блочные элементы

Строчные элементы

Универсальные элементы

Нестандартные теги

Осуждаемые теги

Видео

Документ

Звук

Изображения

Объекты

Скрипты

Списки

Ссылки

Таблицы

Текст

Форматирование

Формы

Фреймы

Browser support

The numbers in the table specifies the first browser version that fully supports appropriate format.

Chrome

Firefox

Opera

Safari

IE / Edge

TTF / OTF 4 3.5 10 3.1 9
WOFF 5 3.6 11.10 5.1 9
WOFF2 36 39 23 10 No support
SVG 4-37 No support 9-24 3.2 No support
EOT No support No support No support No support 6

Fonts only working when set to be «installable».
Chrome 38 and newer support SVG fonts only on Windows Vista and XP.

iOS Safari

Android browser

Chrome for Android

Firefox for Android

Opera Mobile

TTF / OTF 4.2 2.2 Yes 1 10
WOFF 5 4.4 Yes 5 11
WOFF2 10 No support Yes 39 37
SVG Yes 3-4.4.4 No support No support 10
EOT No support No support No support No support No support

Exact browser version is unknown

Описание

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

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

Что можно еще добавить в @font-face

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

font-stretch

font-stretch задает ширину символов. Используется в @font-face по аналогии с font-syle и font-weight. По умолчанию имеет значение normal. Пока нет особого смысла использовать из-за слабой поддержки браузерами.

@font-face {
    font-family: Journal;
    src: url(journal-webfont-regular.woff);
	font-style: normal;
	font-weight: normal;
	font-stretch: normal;
}

local

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

@font-face {
    font-family: Journal;
    src: local(JournalRegular), local("Journal Regular"),
		 url(journal-webfont-regular.woff);
	font-style: normal;
	font-weight: normal;
}

Использовать данную декларацию нужно очень осторожно, из-за проблем в некоторых браузерах

unicode-range

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

@font-face {
    font-family: Journal;
    src: url(journal-webfont-regular.woff);
    unicode-range: U+00-FF, U+980-9FF;
}

Поддержка браузерами на данный момент сильно хромает.

§Оптимизация

Разобравшись с форматами и подключением, давайте приступим к оптимизации. Из первого пункта мы уже узнали, что самые легковесные форматы — это woff и eot, которых хватает как раз для того, чтобы покрыть все существующие десктопные браузеры. Таким образом, если вы не планируете поддерживать мобильные устройства, то font-face будет выглядеть вот так:

@font-face {
    font-family: 'PT Sans';
    src: url('ptsans.eot');
    src: url('ptsans.eot?#iefix') format('embedded-opentype'),
         url('ptsans.woff') format('woff');
}

Кроме этого, у font-face есть еще одно правило, которое позволяет оптимизировать загрузку вашей страницы — это local. C помощью него мы можем проверить наличие шрифта на компьютере пользователя, и если таковой отсутствует, инициировать его загрузку. В local указывается полное наименование шрифта и его PostScript Name.

Вот такая запись font-face проверит наличие шрифта на компьютере:

@font-face {
    font-family: 'PT Sans';
    src: url('ptsans.eot');
    src: local('PT Sans'), local('PTSans-Regular'), 
         url('ptsans.eot?#iefix') format('embedded-opentype'),
         url('ptsans.woff') format('woff');
}

Для мобильных браузеров, в которых работает ttf, используйте gzip-сжатие файлов шрифтов. В результате вы получите экономию в весе до 40%.

Псевдоклассы для постраничных медиа

Существует три псевдокласса, которые используются специально в связке с At правилом . Выглядит их использование следующим образом:

@page :pseudo-class { stuff }.

— этот псевдокласс применяется к первой странице постраничных медиа.

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

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

Оцени статью

Оценить

Средняя оценка / 5. Количество голосов:

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

Спасибо за ваши отзыв!

Медиа-типы

@ правило применит содержимое к определенному типу медиа, например, к печати:

@media print {
	body {
		font-size: 10pt;
		font-family: times new roman, times, serif;
	}
	#navigation {
		display: none;
	}
}

Возможные типы медиа:

  • – правила CSS применяются ко всем возможным типам медиа
  • – для речевых синтезаторов.
  • – для портативных устройств.
  • – для принтеров.
  • – для проекторов.
  • – для дисплеев компьютеров.

Вы также можете использовать следующие типы медиа: braille, embossed, tty и tv.

Примечание: несмотря на все вышесказанное браузер IE поддерживает всего несколько медиа-типов – all, screen и print.

Критерии

  1. Простота реализации: порой просто — это то, что укладывается в срок.
  2. Скорость отрисовки: благодаря FOUT можно немедленно отобразить запасные шрифты и веб-шрифт во время загрузки. Можно предпринять ещё шаги, чтобы сократить время для отображения запасного шрифта и уменьшить влияние FOUT, а то и вовсе устранить его.
  3. Масштабируемость: некоторые подходы загрузки шрифтов поощряют последовательную загрузку веб-шрифтов. А нам нужно, чтобы запросы происходили параллельно. Мы оценим, насколько хорошо работает каждый подход с растущим объёмом веб-шрифтов.
  4. Надежность в перспективе: нужны ли дополнительные исследования и поддержка, если выйдет новый формат шрифта и легко ли его адаптировать?
  5. Поддержка браузерами: хватит ли для работы с огромной базой для удовлетворения требований поддержки браузерами большинства проектов?
  6. Гибкость: насколько легко в этом подходе группировать запросы и перерисовки с перекомпоновками из-за них? Нам нужно контролировать, какие шрифты загружаются и когда.
  7. Надёжность: что случится, если запрос веб-шрифта зависнет? Отобразится ли текст, или из-за одного шрифта развалится весь сайт?
  8. Хостинг: требует ли подход своего хостинга и адаптирован ли он для работы с различными инструментами загрузки шрифтов, предоставленных облачными провайдерами/шрифтоделами шрифта?
  9. Выбор набора символов: некоторые лицензии не позволяют выбирать символы. Некоторые подходы ниже требуют выбирать отдельные символы для оптимальной производительности.

Временная шкала отображения шрифта

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

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

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

При перерисовке невидимым запасным шрифтом для элемента, браузер ищет шрифт так же как и при “перерисовке запасным шрифтом”. Создает анонимный шрифт с похожими метриками как у выбранного шрифта, но с невидимыми символами, и отрисовывает текст им.

Мелькание ложного жирного/ложного курсива, или FOUT с двухэтапной отрисовкой

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

  • Демо: FOFT, or FOUT с двухэтапной отрисовкой  (включает трюк с sessionStorage для оптимизации повторных просмотров)
  • Подробнее: «Мелькание ложного жирного и ложного курсива — ещё больше о загрузке шрифта»

Плюсы

  • Все существующие плюсы подхода
  • Скорость отрисовки: значительно сокращает скачки контента, происходящих после загрузки шрифта. С учётом двухэтапной загрузки шрифта (обычный шрифт — единственный, берущий на себя наибольшую перекомпоновку), первый этап происходит намного быстрее, чем в случае совместной группировки шрифтов в одну перерисовку.

Минусы

  • Все существующие минусы подхода .
  • Некоторые дизайнеры не переносят синтез шрифтов. Объективно, синтезированные варианты не так полезны, как их реальные аналоги, но это сравнение нечестно. Учитывая, что синтезированные версии — это только временные заглушки, вопрос нужно ставить так: «Они полезнее, чем резервный шрифт?». Да. Ответ на этот вопрос — да.

Системные, стандартные, безопасные шрифты

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

А безопасными шрифтами их называют, потому что с большой вероятностью они отобразятся в браузере у большенства посетителей сайта.

Но вся проблема заключается в том, что в разных операционных системах устанавливаются разные наборы шрифтов. Посмотреть наборы поставляемых шрифтов вместе с операционной системой можно на официальных страницах Windows, Mac OS. А в Unix/Linux вообще нет стандартного набора.

Для того, чтобы интернет страничка отображалась в соответствии с задумкой дизайнера, в CSS установили свойство шрифтов, которое называется

Свойство шрифтов font-family

Свойство font-family — семейства шрифтов, сгруппированные по определенным признакам.

Родовые семейства:

  • serif — шрифты с засечками на концах;
  • sans-serif — шрифты без засечек;
  • cursive — шрифты курсивного начертания;
  • fantasy — декоративные шрифты;
  • monospace — моноширинный шрифт(с буквами одинаковой ширины).

Таким образом просто подбираются похожие шрифты из разных операционных систем и через запятую подключаются к интернет странице.

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

Просто проследите логику и все станет предельно ясно.

body {
font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif;
}

Разберем написанное:

  • OC Windows — Arial;
  • OC Mac OS — Helvetica CY;
  • OC Unix/Linux — Nimbus Sans L;
  • Родовое семейство — sans-serif.

Так называемые безопасные шрифты

На основе OC Windows был составлен список из нескольких безопасных шрифтов.

  1. Arial
  2. Arial Black
  3. Comic Sans MS
  4. Courier New
  5. Georgia
  6. Impact
  7. Times New Roman
  8. Trebuchet MS
  9. Verdana

Все эти шрифты установлены на Mac OS X, Windows, и у многих пользователей Unix/Linux, у которых установлен пакет Core fonts for the Web.

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

Таблица соответствия и принадлежности шрифтов к определенному семейству:

Windows Mac OS Unix/Linux Родовое семейство
Arial Black Helvetica CY Nimbus Sans L Sans-serif
Arial Helvetica CY Nimbus Sans L Sans-serif
Comic Sans MS Monaco CY * (см. ниже) cursive
Courier New * (см. ниже) Nimbus Mono L Monospace
Georgia * (см. ниже) Century Schoolbook L Serif
Impact Charcoal CY * (см. ниже) Sans-serif
Times New Roman Times CY Nimbus Roman No9 L Serif
Trebuchet MS Helvetica CY * (см. ниже) Sans-serif
Verdana Geneva CY DejaVu Sans Sans-serif

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

Импортирование

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

@import url(addonstyles.css);

Эта конструкция часто используется в месте, где элемент ссылается на CSS файл HTML-страницы, имея при этом внутреннюю таблицу стилей, которая выглядит приблизительно так:

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

Асинхронная таблица стилей Data URI

Используйте инструмент вроде для загрузки таблицы стилей со всеми шрифтами, встроенными как Data URI. Часто это встречается в сочетании с методом localStorage для хранения таблиц в браузере для повторных просмотров.

  • Демо: Асинхронная таблица стилей Data URI
  • Подробнее: «Как мы используем веб-шрифты осознанно или как не ударить -ом в грязь» на Filament Group Lab.

Плюсы

  • Скорость отрисовки: в основном устраняет FOIT (смотрите замечание в минусах)
  • Гибкость: легко группировать запросы в одной перерисовке (поместите множество Data URI в одну таблицу стилей)
  • Простота: не требует дополнительных изменений CSS. Это большое преимущество. Однако, с реализацией не всё гладко.
  • Надёжность: если асинхронный запрос не сработает, запасной вариант текста всё равно отображается.

Минусы

  • Скорость отрисовки: во время парсинга таблицы стилей и Data URI есть очень заметное, но короткое FOIT. Отвлекает. Я сталкиваюсь с этим методом настолько часто, что узнаю его с закрытыми глазами.
  • Гибкость и масштабируемость: сгруппированные запросы и перерисовки совмещаются друг с другом. При совместной группировке множества Data URI (что приведёт к последовательной, а не параллельной загрузке), они перерисовываются вместе. С этим методом нельзя загружать параллельно и не перерисовывать страницу каждый раз.
  • Сложно поддерживать. Требует собственный метод для определения поддержки форматов шрифта. Вашему JavaScript-загрузчику потребуется определить, какой формат поддерживается (WOFF2 или WOFF) до загрузки таблицы стилей Data URI. Поэтому с выходом нового формата шрифта придётся научиться определять его поддержку в браузере.
  • Поддержка браузерами: можно не возиться с поддержкой шага с загрузчиком и жёстко прописывать WOFF2 или WOFF, но это повлечёт либо излишне тяжелые, либо потенциально холостые запросы (тот же недостаток, что и у встроенных Data URI).
  • Свой хостинг: требуется
Ссылка на основную публикацию