Опубликован: 06.06.2006 | Уровень: для всех | Доступ: платный
Лекция 15:

Шрифты

Дескрипторы для подбора шрифта: 'font-family', 'font-style', 'font-variant', 'font-weight', 'font-stretch' и 'font-size'

Следующие дескрипторы имеют те же имена, что и соответствующие свойства шрифта CSS2, и принимают одиночное значение или список разделённых запятыми значений.

Значения в таком списке (за исключением особо отмеченных) - те же самые, что и соответствующие свойства CSS2. Если это одиночное значение, оно должно совпадать. Если это список, любой элемент списка может образовать совпадение. Если в @font-face дескриптор отсутствует, используется начальное значение дескриптора.

'font-family'(Дескриптор)

Значение: [ <family-name> | <generic-family> ] [, [ <family-name> | <generic-family> ]]*

Начальное: зависит от ПА

Носитель: визуальный

Это дескриптор имени семейства шрифтов для шрифта, принимающий то же значение, что и свойство 'font-family'.

'font-style' (Дескриптор)

Значение: all | [ normal | italic | oblique ] [, [normal | italic | oblique] ]*

Начальное: all

Носитель: визуальный

Это дескриптор стиля шрифта, принимающий то же значение, что и свойство 'font-style', за исключением того, что использование списка запрещено.

'font-variant' (Дескриптор)

Значение: [normal | small-caps] [,[normal | small-caps]]*

Начальное: normal

Носитель: визуальный

Это CSS-обозначение того, является ли этот шрифт вариантом "малые заглавные". Он принимает те же значения, что и свойство 'font-variant', за исключением того, что использование списка запрещено.

Примечание. Кириллические прямые шрифты могут быть помечены в 'font-variant' как "малые заглавные", что лучше совмещается с латиницей (а соответствующий курсив - помечен 'font-style' как italic с той же целью).

'font-weight' (Дескриптор)

Значение: all | [normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900] [, [normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900]]*

Начальное: all

Носитель: визуальный

Это дескриптор веса шрифта относительно других шрифтов того же семейства. Принимает те же значения, что и свойство 'font-weight', с тремя исключениями:

  1. относительные ключевые слова (bolder, lighter) не разрешаются;
  2. список разделённых запятыми значений разрешён для шрифтов, содержащих несколько значений веса;
  3. разрешено дополнительное ключевое слово 'all', означающее, что шрифт будет совпадать для всех возможных значений веса, или потому что он имеет несколько значений веса, или потому что этот шрифт имеет единичное значение веса.

'font-stretch' (Дескриптор)

Значение: all | [ normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded ] [, [ normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded] ]*

Начальное: normal

Носитель: визуальный

Это обозначение CSS для сжатия или расширения шрифта относительно других шрифтов того же семейства. Принимает те же значения, что и свойство 'font-stretch', за исключением того, что:

  • относительные ключевые слова (wider, narrower) не допускаются;
  • список разделённых запятыми значений разрешён;
  • разрешено ключевое слово 'all'.

'font-size'

Значение: all | <length> [, <length> ]*

Начальное: all

Носитель: визуальный

Это дескриптор размера, предоставляемого для данного шрифта. Разрешены только абсолютные единицы измерения, в отличие от свойства 'font-size', которое разрешает относительные и абсолютные размеры. Разрешён список разделённых запятыми размеров.

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

Дескрипторы для квалификации данных шрифта: 'unicode-range'

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

'unicode-range' (Дескриптор)

Значение: <urange> [, <urange> ]*

Начальное: U+0-7FFFFFFF

Носитель: визуальный

Это дескриптор диапазона символов ISO 10646, покрываемого данным шрифтом.

Значения <urange> выражаются с использованием 16-ричных значений с префиксом "U+", соответствующих кодовой позиции в ISO 10646 ( "Приложение F. Индекс свойств" ).

Например, U+05D1 это символ ISO 10646 'еврейская буква bet'. Для значений вне Basic Multilingual Plane/BMP (Базовый Многоязычный План) подставляются дополнительные ведущие цифры, соответствующие числу плана, и также 16-ричные, как этот U+A1234 символ Плана 10 с 16-ричной кодовой позицией 1234. Со времени написания, новые символы вне BMP не добавлялись. Ведущие нули (например, 0000004D) верны, но не требуются.

Начальное значение этого дескриптора покрывает не только весь Basic Multilingual Plane (BMP), в пределах U+0-FFFF, но также и весь репертуар ISO 10646. Таким образом, начальное значение говорит о том, что шрифт может содержать глифы любых символов ISO 10646. Спецификация значения 'unicode-range' предоставляет информацию для эффективного поиска, объявляя ограниченный диапазон, в пределах которого шрифт может иметь глифы символов. Шрифт не должен искаться вне указанного диапазона символов.

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

unicode-range: U+20A7

нет маски - обозначение одиночной позиции символа (песета - символ испанской валюты)

unicode-range: U+215?

одна маска, покрывает диапазон от 2150 до 215F (дроби)

unicode-range: U+00??

две маски, покрывает диапазон от 0000 до 00FF (Latin-1)

unicode-range: U+E??

две маски, покрывает от 0E00 до 0EFF (письмо Lao).

Пара чисел в данном формате в комбинации с дефисом обозначает более широкий диапазон. Например:

unicode-range: U+AC00-D7FF

это диапазон от AC00 до D7FF (область Hangul Syllables).

Множественные конечные диапазоны могут быть специфицированы путём разделения запятыми. Как и в других списках CSS с разделением запятыми, любой пробел перед или после запятой игнорируется. Например:

unicode-range: U+370-3FF, U+1F??

покрывает диапазон от 0370 до 03FF (Modern Greek) плюс от 1F00 до 1FFF (Ancient polytonic Greek).

unicode-range: U+3000-303F, U+3100-312F, U+32??, U+33??, U+4E00-9FFF, U+F9000-FAFF, U+FE30-FE4F

один из наихудших примеров в плане многозначности, очень определённо обозначает, что этот (очень объёмный) шрифт содержит только китайские символы из ISO 10646 без включения любых символов, уникальных для японского и корейского. Диапазон - от 3000 до 303F (CJK символы и пунктуация), плюс от 3100 до 312F (Bopomofo), плюс от 3200 до 32FF (включая CJK символы и месяцы), плюс от 3300 до 33FF (CJK зона совместимости), плюс от 4E00 до 9FFF (CJK унифицированные идеографы), плюс отF900 до FAFF (CJK идеографы совместимости), плюс от FE30 до FE4F (CJK формы совместимости).

Более понятное представление типичного китайского шрифта:

unicode-range: U+3000-33FF, U+4E00-9FFF
unicode-range: U+11E00-121FF

этот шрифт покрывает предлагаемую регистрацию пиктограмм Aztec в диапазоне от 1E00 до 21FF в плане 1.

unicode-range: U+1A00-1A1F

этот шрифт покрывает предлагаемую регистрацию Irish Ogham в диапазоне от1A00 до 1A1F.

Дескриптор числовых значений: 'units-per-em'

Этот дескриптор определяет количество "units/единиц измерения" на em; эти units могут использоваться другими дескрипторами для выражения различных размеров, следовательно, 'units-per-em' необходим, если другие дескрипторы зависят от него.

'units-per-em' (Дескриптор)

Значение: <number>

Начальное: не определено

Носитель: визуальный

Это дескриптор единиц измерения для координат прямоугольника em, размера решётки дизайна, на которую накладываются глифы.

Дескриптор для ссылки: 'src'

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

'src' (Дескриптор)

Значение: [ <uri> [format(<string> [, <string>]*)] | <font-face-name> ] [, <uri> [format(<string> [, <string>]*)] | <font-face-name> ]*

Начальное: не определено

Носитель: визуальный

Это выстроенный по приоритету список разделённых запятыми внешних ссылок и/или имён локально установленных файлов. Внешняя ссылка указывает на данные шрифта в Web. Это необходимо, если WebFont загружен. Ресурс шрифта может быть поднабором шрифта-источника, например, он может содержать только те глифы, которые необходимы для текущей страницы или для набора страниц.

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

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

Начальный список строк формата, определённый в данной спецификации и представляющий форматы, которые наиболее вероятны для использования на различных платформах:

Строка Формат Шрифта Примеры типичных расширений
"truedoc-pfr" TrueDocT Portable Font Resource .pfr
"embedded-opentype" Embedded OpenType .eot
"type-1" PostScriptT Type 1 .pfb, .pfa
"truetype" TrueType .ttf
"opentype" OpenType, включая TrueType Open .ttf
"truetype-gx" TrueType с расширениями GX
"speedo" Speedo
"intellifont" Intellifont

Как и с прочими URI в CSS, URI может быть неполным, и в этом случае он расширяется относительно расположения таблицы стилей, содержащей @font-face.

Установленное локально <font-face-name> это полное имя локально установленного шрифта. full font name \ полное имя шрифта - это имя шрифта, сообщённое операционной системой, и оно наиболее вероятно будет использоваться читающим таблицами стилей, таблицей стилей по умолчанию в браузере или возможными авторским таблицами стилей в intranet. Украшения, такие как bold, italic и underline, часто используются для дифференциации шрифтов внутри семейства шрифтов. Дополнительную информацию о полных именах шрифтов см. далее в Примечаниях.

Обозначением для <font-face-name> является полное имя шрифта, которое должно быть заключено в кавычки, поскольку может содержать любые символы, включая пробелы и знаки пунктуации, а также должно быть заключено в local(" и ").

src: url("http://foo/bar") 
полный URI без информации о формате(ах) шрифта, доступных здесь
src: local("BT Century 751 No. 2 Semi Bold Italic") 
ссылается на определённый вид локально установленного шрифта
src: url("../fonts/bar") format("truedoc-pfr") 
частичный URI шрифта, доступного в формате TrueDoc
src: url("http://cgi-bin/bar?stuff") format("opentype", "intellifont") 
полный URI, в данном случае - скрипта, который может генерировать 
два разных формата шрифта - OpenType и Intellifont
src: local("T-26 Typeka Mix"), url("http://site/magda-extra") format("type-1") 
два альтернативных варианта: первый - локально установленный шрифт, 
а второй - загружаемый шрифт в формате Type 1.

Доступ к локально установленным шрифтам происходит через <font-face-name>. Font face name (имя разновидности шрифта) не должно быть ни уникальным, ни независимым от формата платформы и шрифта, но в настоящее время это наилучший путь идентификации данных локально установленного шрифта. Использование имени разновидности шрифта (font face name) можно осуществить более точно путём предоставления указания на требуемое дополнение глифа. Это можно сделать, указав диапазон позиций символов ISO 10646, для которых шрифт предоставляет некоторые глифы (см. 'unicode-range').

Наталья Алмаева
Наталья Алмаева
Россия
Светлана Казьмина
Светлана Казьмина
Россия, Волгодонск