Пространственные свойства: 'azimuth' и 'elevation'
Пространственное аудио является важным стилистическим свойством звукового представления. Оно предоставляет естественный способ реализации звучания нескольких независимых голосов, как в реальной жизни (источники звука редко находятся в одной точке помещения). Стереодинамики создают пространственный эффект. Стереонаушники или становящиеся всё более популярными установки с пятью колонками в домашнем театре могут генерировать объёмное звучание, а многополосные установки могут производит трёхмерное звучание. VRML 2.0 также включает пространственное аудио в предположении, что доступные по цене для потребителей аудиоустройства с пространственными эффектами со временем станут широко распространёнными.
'azimuth'
Значение: <angle> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards | inherit
Начальное: center
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Значения имеют следующий смысл:
<angle>
Позиция в угловых терминах от '-360deg' до '360deg'. Значение '0deg' означает впереди и в центре звукового пространства. '90deg' это справа, '180deg' - сзади, '270deg' (или более подходящий эквивалент, '-90deg') - слева.
left-side
То же, что '270deg'. С 'behind' - '270deg'.
far-left
То же, что '300deg'. С 'behind' - '240deg'.
left
То же, что '320deg'. С 'behind' - '220deg'.
center-left
То же, что '340deg'. С 'behind' - '200deg'.
center
То же, что '0deg'. С 'behind' - '180deg'.
center-right
То же, что '20deg'. С 'behind' - '160deg'.
right
То же, что '40deg'. С 'behind' - '140deg'.
far-right
То же, что '60deg'. С 'behind' - '120deg'.
right-side
То же, что '90deg'. С 'behind' - '90deg'.
leftwards
Сдвигает звучание влево относительно текущего угла. Точнее, вычитает 20 градусов. Арифметически выполняется modulo 360 градусов. Заметьте, что 'leftwards' точнее описать как "повёрнуто против часовой стрелки," поскольку оно всегда вычитает 20 градусов, даже если наследуемый azimuth уже позади слушателя (в этом случае звучание на самом деле перемещено вправо).
rightwards
Сдвигает звучание вправо относительно текущего угла. Точнее, прибавляет 20 градусов. См. 'leftwards' в арифметике.
Данное свойство может быть более точно реализовано микшированием одного сигнала в разных каналах с разным уровнем. Оно может также использовать фазовое смещение, цифровую задержку и другие аналогичные приёмы для того, чтобы создать иллюзию сцены. Точные значения, используемые для выполнения этого эффекта, и количество динамиков зависят от ПА; это свойство лишь идентифицирует желаемый результат.
H1 { azimuth: 30deg } TD.a { azimuth: far-right } /* 60deg */ #12 { azimuth: behind far-right } /* 120deg */ P.comment { azimuth: behind } /* 180deg */
Если пространственный азимут специфицирован и выводящее устройство не способно производить звук позади слушателя, ПА должны конвертировать значения задней полусферы в значения передней полусферы. Метод может быть такой:
если 90deg < x <= 180deg, тогда x := 180deg - x если 180deg < x <= 270deg, тогда x := 540deg - x
'elevation'
Значение: <angle> | below | level | above | higher | lower | inherit
Начальное: level
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Значения имеют следующий смысл:
<angle>
Специфицирует возвышение как угол между '-90deg' и '90deg'. '0deg' означает передний горизонт, что означает уровень слушателя. '90deg' означает прямо сверху, а '-90deg' - прямо внизу.
below
То же, что '-90deg'.
level
То же, что '0deg'.
above
То же, что '90deg'.
higher
Прибавляет 10 градусов к текущему возвышению.
lower
Вычитает 10 градусов из текущего возвышения.
Точные значения, используемые для получения этого эффекта, и количество динамиков не определены. Это свойство лишь идентифицирует желаемый результат.
H1 { elevation: above } TR.a { elevation: 60deg } TR.b { elevation: 30deg } TR.c { elevation: level }
Свойства характеристик голоса
'speech-rate'
Значение: <number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit
Начальное: medium
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Специфицирует темп речи. Обратите внимание, что допустимы и абсолютные, и относительные значения ключевых слов (сравните с 'font-size').
Значения имеют следующий смысл:
<number>
Специфицирует темп речи - слов в минуту, количество которых варьируется в зависимости от языка и широко поддерживается речевыми синтезаторами.
x-slow
То же, что 80 слов в минуту.
slow
То же, что 120 слов в минуту
medium
То же, что 180 - 200 слов в минуту.
fast
То же, что 300 слов в минуту.
x-fast
То же, что 500 слов в минуту.
faster
Прибавляет 40 слов в минуту к текущему темпу.
slower
Вычитает 40 слов в минуту из текущего темпа.
'voice-family'
Значение: [[<specific-voice> | <generic-voice> ],]* [<specific-voice> | <generic-voice> ] | inherit
Начальное: зависит от ПА
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Значением является приоритетный список разделённых запятыми имён семейств голосов (сравните с 'font-family').
Значения имеют следующий смысл:
<generic-voice>
Значениями являются семейства голосов. Возможные значения: 'male', 'female' и 'child'.
<specific-voice>
Значения являются специфическими объектами (напр., comedian, trinoids, carlos, lani).
H1 { voice-family: announcer, male } P.part.romeo { voice-family: romeo, male } P.part.juliet { voice-family: juliet, female }
Имена могут быть в кавычках и обязаны быть закавычены, если какое-либо слово в имени не соответствует правилам синтаксиса для идентификаторов. Рекомендуется также закавычивать голоса с именем, состоящим из более чем одного слова. Если кавычки отсутствуют, любые символы пробела до и после имени голоса игнорируются и любая последовательность пробельных символов внутри имени голоса конвертируется в одиночный символ пробела.
'pitch'
Значение: <frequency> | x-low | low | medium | high | x-high | inherit
Начальное: medium
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Специфицирует среднюю высоту (частоту) говорящего голоса. Средняя высота голоса зависит от семейства голосов. Например, средняя высота стандартного мужского голоса - около 120Hz, а женского - около 210Hz.
Значения имеют следующий смысл:
<frequency>
Специфицирует среднюю высоту голоса (Hz).
x-low, low, medium, high, x-high
Эти значения не отображаются в абсолютные значения частоты, поскольку зависят от семейства голосов. ПА должны отображать эти значения в соответствующие частоты, базируясь на семействе голосов и установках ПА. В то же время, ПА обязаны отображать эти значения упорядоченно (т.е. 'x-low' ниже, чем 'low', и т.д.).
'pitch-range'
Значение: <number> | inherit
Начальное: 50
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Специфицирует вариации средней высоты. Воспринимаемая высота человеческого голоса определяется фундаментальной частотой и обычно имеет значения: 120Hz для мужского и 210Hz для женского голоса. На человеческих языках говорят с различной инфлексией и частотой; эти вариации выражают дополнительные значения и смысл. Так, оживлённая речь, т.е. с сильной инфлексией, имеет высокий диапазон. Это свойство специфицирует диапазон, вне которого появляется вариация, т.е., как сильно фундаментальная частота может отклоняться от средней частоты.
Значения имеют следующий смысл:
<number>
Значение - между '0' и '100'. '0' производит плоский монотонный голос. 50 даёт нормальную инфлексию. Выше 50 - оживлённая речь.
'stress'
Значение: <number> | inherit
Начальное: 50
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Специфицирует "локальные пики" интонационного контура голоса. Например, английский является акцентированным языком, и различные части предложения имеют первичное, вторичное и третичное выделение. Значение свойства 'stress' управляет величиной инфлексии, которая является результатом действия этих маркёров выделения. Это свойство действует вместе с 'pitch-range' и служит для того, чтобы разработчики могли использовать высококачественные воспроизводящие устройства.
Значения имеют следующий смысл:
<number>
Значения - от '0' до '100'. Смысл значения зависит от языка. Например, уровень '50' - для стандартного мужского голоса, говорящего по-английски (средняя частота = 122Hz) с нормальной интонацией и выделением будет отличаться от голоса со значением '50', говорящего по-итальянски.
'richness'
Значение: <number> | inherit
Начальное: 50
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Специфицирует полётность голоса. Полётный голос будет слышен в большом помещении, а вкрадчивый - нет. (Термин "вкрадчивый" относится к форме синусоиды.)
Значения имеют следующий смысл:
<number>
Значения - от '0' до '100'. Чем выше значение, тем более полётный голос. Более низкие значения дают мягкий, медоточивый голос.
Свойства микширования: 'play-during'
'play-during'
Значение: <uri> mix? repeat? | auto | none | inherit
Начальное: auto
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: звуковой
Сходное со свойствами 'cue-before' и 'cue-after', данное свойство специфицирует звук, проигрываемое как фон в то время, когда проговаривается содержимое элемента.
Значения имеют следующий смысл:
<uri>
Звук, обозначенный этим <uri>, проигрывается как фон в то время, когда проговаривается содержимое элемента.
mix/
Данное ключевое слово, если установлено, означает, что звук, наследуемый из свойства 'play-during' родительского элемента, продолжает проигрываться, а звучание, указанное в <uri>, смешивается с ним. Если 'mix' не специфицировано, фоновое звучание элемента замещает звучание из родительского элемента.
repeat
Данное ключевое слово, если установлено, означает, что звук будет повторяться, если окажется слишком короток для заполнения всей длительности элемента. В ином случае звучание проигрывается однократно и останавливается. Это подобно действию свойства 'background-repeat'. Если звучание слишком долгое для элемента, оно обрывается сразу, как только элемент произнесён.
auto
Звучание родительского элемента продолжает проигрываться (без рестарта, что могло бы иметь место, если бы свойство наследовалось).
none
Это ключевое слово обозначает тишину. Звучание родительского элемента не слышно (если имеется) в течение данного элемента и продолжается после данного элемента.
BLOCKQUOTE.sad { play-during: url("violins.aiff") } BLOCKQUOTE Q { play-during: url("harp.wav") mix } SPAN.quiet { play-during: none }
Свойства объёма звука: 'volume'
'volume'
Значение: <number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit
Начальное: medium
Применяется: ко всем элементам
Наследуется: да
Процентное: относительно наследуемого значения
Носитель: звуковой
Объём означает величину размаха синусоиды. Другими словами, сильно изогнутая синусоида голоса при объёме 50 может давать пики выше данного значения. Полные значения, вероятно, будут более комфортными для человека, например, при физическом управлении объёмом звука (что будет пропорционально увеличивать значения и 0, и 100); единственное, что делает данное свойство, это определяет динамический диапазон.
Значения имеют следующий смысл:
<number>
Любое число от '0' до '100'. '0' - это минимальный слышимый уровень громкости, а 100 соответствует максимальному комфортному уровню.
<percentage>
Процентные значения вычисляются относительно наследуемого значения и затем выравниваются в диапазоне от '0' до '100'.
silent
Вообще нет звука. Значение '0' не означает то же самое, что 'silent'.
x-soft
То же, что '0'.
soft
То же, что '25'.
medium
То же, что '50'.
loud
То же, что '75'.
x-loud
То же, что '100'.
ПА должны позволять слушателю устанавливать значения, соответствующие '0' и '100'. Ни одно значение не является универсально применимым; подходящие значения зависят от используемой аппаратуры (громкоговорителей, наушников), обстановки (автомобиль, домашний театр, библиотека) и личных предпочтений. Вот некоторые примеры:
Браузер для использования в автомобиле имеет установки с учётом сильных посторонних шумов. '0' будет довольно высоким уровнем, а '100' - очень высоким. Речь будет хорошо прослушиваться сквозь уличный шум, но общий динамический диапазон будет ограничен. Автомобили с улучшенной звукоизоляцией могут обеспечить более широкий динамический диапазон. Другой браузер используется в квартире поздно ночью или в учебной аудитории. '0' - установлено на очень низкий уровень, а '100' - тоже на довольно низкий. Как и в первом примере, динамический диапазон довольно ограничен. Реальный объём звука здесь небольшой, а в первом примере - слишком высокий.В тихом изолированном помещении установлен домашний театр hi-fi. '0' - установлен довольно низко и '100' - довольно высоко; динамический диапазон весьма широк.
Одна и та же авторская таблица стилей может использоваться во всех случаях, просто отображая значения '0' и '100' соответствующим образом на стороне клиента.
Свойства паузы: 'pause-before', 'pause-after' и 'pause'
'pause-before'
Значение: <time> | <percentage> | inherit
Начальное: зависит от ПА
Применяется: ко всем элементам
Наследуется: нет
Процентное: см. текст
Носитель: звуковой
'pause-after'
Значение: <time> | <percentage> | inherit
Начальное: зависит от ПА
Применяется: ко всем элементам
Наследуется: нет
Процентное: см. текст
Носитель: звуковой
Это свойство специфицирует паузу до (или после) произнесения содержимого элемента.
Значения имеют следующий смысл:
<time>
Выражает паузу в абсолютных единицах времени (секундах и миллисекундах).
<percentage>
Относится к инверсии значения свойства 'speech-rate'. Например, если speech-rate - 120 слов в минуту (т.е. одно слово в полсекунды, или 500ms), тогда 'pause-before' в 100% означает паузу в 500ms, а 'pause-before' в 20% означает 100ms.
Пауза вставляется между содержимым элементов и любым содержимым 'cue-before' или 'cue-after'.
Авторы должны использовать относительные значения, чтобы создавать более надёжные таблицы стилей с учётом возможной разницы в реальных значениях устанавливаемого объёма.
'pause'
Значение: [ [<time> | <percentage>]{1,2} ] | inherit
Начальное: зависит от ПА
Применяется: ко всем элементам
Наследуется: нет
Процентное: см. описания 'pause-before' и 'pause-after'
Носитель: звуковой
Свойство 'pause' это сокращение для 'pause-before' и 'pause-after'. Если заданы два значения, то первое является 'pause-before', а второе - 'pause-after'. Если задано только одно значение, оно применяется для обоих свойств.
H1 { pause: 20ms } /* pause-before: 20ms; pause-after: 20ms */ H2 { pause: 30ms 40ms } /* pause-before: 30ms; pause-after: 40ms */ H3 { pause-after: 10ms } /* pause-before: ?; pause-after: 10ms */
Свойства разговора: 'speak'
'speak'
Значение: normal | none | spell-out | inherit
Начальное: normal
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует, будет ли текст представляться в звуке и - если да - в какой манере (примерно как свойство 'display').
Возможные значения:
none
Вырезает звуковое представление, так что элемент не требует времени для представления. Обратите внимание, что потомки могут переопределять это значение и будут звучать. (Для того, чтобы точно отменить представление элемента и его потомков, используйте свойство 'display').
normal
Использует зависимые от языка правила произношения для представления элемента и его потомков.
spell-out
Текст произносится побуквенно (используется для акронимов и аббревиатур).
Заметьте разницу между элементом, чьё свойство 'volume' имеет значение 'silent', и элементом, чьё свойство 'speak' установлено в 'none'. Первый отнимает столько же времени, как если бы он произносился, включая паузы до и после элемента, но звук не будет генерироваться. Второй не отнимает времени и не представляется (хотя его потомки - могут).
Свойства речи: 'speak-punctuation' и 'speak-numeral'
Дополнительное свойство речи, speak-header, описано в главе о таблицах.
'speak-punctuation'
Значение: code | none | inherit
Начальное: none
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Специфицирует, как произносится пунктуация. Значения имеют следующий смысл:
code
Такие знаки препинания, как точка с запятой, скобки и так далее, произносятся буквально.
none
Знаки не произносятся, а представляются естественно, как различные паузы.
'speak-numeral'
Значение: digits | continuous | inherit
Начальное: continuous
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: звуковой
Управляет произношением чисел. Значения имеют следующий смысл:
digits
Произносит числа отдельными цифрами. Например, "237" произносится "два три семь".
continuous
Числа произносятся полностью. Например, "237" произносится "двести тридцать семь". Словесное представление зависит от языка.
Свойства реплики: 'cue-before', 'cue-after' и 'cue'
'cue-before'
Значение: <uri> | none | inherit
Начальное: none
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: звуковой
'cue-after'
Значение: <uri> | none | inherit
Начальное: none
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: звуковой
Звуковые иконки (реплики) являются способом различения семантических элементов. Звуки могут проигрываться до и/или после элемента, чтобы обозначить его границы.
Значения имеют следующий смысл:
<uri>
URI обязан указывать на ресурс звуковой иконки. Если URI указывает не на аудио-файл, а, например, на изображение, ресурс должен игнорироваться, а свойство - рассматриваться так, как если бы оно имело значение 'none'.
none
Звуковая иконка не специфицирована.
A {cue-before: url("bell.aiff"); cue-after: url("dong.wav") } H1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
'cue'
Значение: [ <'cue-before'> || <'cue-after'> ] | inherit
Начальное: не определено для сокращённого свойства
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: звуковой
Свойство 'cue' является сокращением для установок 'cue-before' и 'cue-after'. Если заданы два значения, первое является 'cue-before', а второе - 'cue-after'. Если задано только одно значение, оно применяется к обоим свойствам.
Следующие два правила эквивалентны:
H1 {cue-before: url("pop.au"); cue-after: url("pop.au") } H1 {cue: url("pop.au") }
Если ПА не может вывести звуковую иконку (напр., установки ПА не позволяют это сделать), мы рекомендуем, чтобы он воспроизводил альтернативную подсказку (напр., выводил предупреждающее сообщение, издавал предупреждающий звук и т.п.).
Информацию о других видах техники генерации содержимого см. в псевдоэлементах :before и :after.
Звуковое представление документа, обычно используемое
Звуковое представление документа, обычно используемое людьми с проблемами зрения, сочетает речевой синтез и "звуковые иконки". Часто такое звуковое представление происходит при конвертации документа в обычный текст и его перенаправлении в устройство чтения с экрана -- программу или физическое устройство, которое просто считывает все символы на экране. Результатом этого является менее эффективное представление, чем могло бы быть, если бы сохранялась структура документа. Свойства таблиц стилей для звукового представления могут использоваться совместно с визуальными свойствами (смешанный носитель) или как звуковая альтернатива визуальному представлению.
Помимо очевидного преимущества - повышения доступности, есть и улучшение использования в других условиях прослушивания информации: использовании в автомобиле, индустриальных и медицинских системах документации (intranet), домашние развлечения и помощь пользователям, обучающимся чтению или имеющим проблемы с чтением.
При использовании звуковых свойств, канва состоит из трёхмерного физического пространства (звуковой среды) и временнoго пространства (можно специфицировать звуки до, во время и после других звуков). Свойства CSS позволяют также авторам изменять качество синтезируемой речи (тип голоса, частоту, инфлексию и т.п.).
H1, H2, H3, H4, H5, H6 { voice-family: paul; stress: 20; richness: 90; cue-before: url("ping.au") } P.heidi { azimuth: center-left } P.peter { azimuth: right } P.goat { volume: x-soft }
Здесь речевой синтезатор направляется в речевые заголовки в голосе (своего рода "аудио-шрифт"), называемом "paul", ровным звуком, но очень мягким голосом. Перед произнесением заголовков звуковой отрывок будет проигрываться из заданного URL. Параграфы класса "heidi" будут идти слева (если звуковая система способна воспроизводить пространственное аудио), а параграфы класса "peter" - справа. Параграфы класса "goat" будут звучать очень мягко.
Новая функциональность
В дополнение к функциональности CSS1, CSS2 поддерживает:
Понятие типов носителя.Значение 'inherit' для всех свойств.Страничные носителиЗвуковые таблицы стилейНесколько опций интернационализации, включая стили нумерации списков, поддержку двунаправленного текста и чувствительных к языку знаков кавычек.Расширенный механизм выбора шрифта, включая смысловой подбор, синтез и загружаемые шрифты. Введены также понятие системных шрифтов и новое свойство 'font-size-adjust'.Таблицы, включая новые значения 'display' и 'vertical-align'.Относительное и абсолютное позиционирование, включая фиксированное позиционирование.Новые типы боксов (наряду с блок- и инлайн-): compact и run-in.Возможность контролировать переполнение, сжатие и видимость содержимого в модели визуального форматирования.Возможность специфицировать максимальные и минимальные ширину и высоту в модели визуального форматирования.Расширенный механизм селекторов, включая дочерние селекторы, смежные селекторы и селекторы атрибутов.Генерируемое содержимое, счётчики и автоматическую нумерацию и маркёры.Оттенение текста с помощью нового свойства 'text-shadow'.Различные новые псевдоклассы, :first-child, :hover, :focus, :lang.Системные цвета и шрифты.Курсоры.Динамические схемы.
Обновлённые описания
Спецификация CSS1 была короче и компактнее. Данная спецификация намного объёмнее и более читабельна. Большая часть нового материала описывает новую функциональность, но описания из CSS1 также расширены. За исключением немногих случаев, описанных ниже, обновлённые описания не изменили ни синтаксис, ни семантику.
Хотя все действительные таблицы стилей CSS1 являются таковыми и в CSS2, есть несколько случаев, когда таблицы стилей CSS1 будут иметь другие значения при интерпретации в качестве таблиц CSS2. Большинство изменений обусловлено опытом разработки, но есть также и корректировка некоторых ошибок.
Значение "!important" изменено. В CSS1 "!important" в таблице стилей автора имел преимущество перед "!important" таблицы стилей пользователя. В CSS2 сделано наоборот.В CSS2 значения цвета ужаты в соответствии с гаммой устройства, а не с гаммой sRGB, как в CSS1.В CSS1 просто указано, что 'margin-right' игнорировалось, если 'margin-left' и 'width' были установлены. В CSS2 выбор между смягчением 'margin-right' или 'margin-left' зависит от направления письма.В CSS1 некоторые свойства (например, 'padding') имели значения, ссылающиеся на ширину родительского элемента. Это было ошибкой; значение всегда должно ссылаться на ширину элемента уровня блока, и данная спецификация отражает это путём ввода термина "containing block/содержащий блок".Начальное значение 'display' - 'inline' в CSS2, а не 'block', как в CSS1.В CSS1 свойство 'clear' применялось ко всем элементам. Это было ошибкой, и в CSS2 свойства применяются только к элементам уровня блока.В CSS1 ':link', ':visited' и ':active' были взаимоисключающими; в CSS2 ':active' может появляться вместе с ':link' или ':visited'.Предлагаемый фактор масштаба между смежными индексами 'font-size' в таблице размеров шрифтов уменьшен с 1.5 до 1.2.Теперь наследуется вычисленное, а не текущее, значение 'font-size'.CSS1-описание 'inside' (для 'list-style-position'), допускало воздействие на левое поле текста, а не на позицию маркёра. В CSS2 такая интерпретация правила устранена.См. также нормативный раздел Различия между символизаторами CSS1 и CSS2.
Автоматическая генерация дескриптора
Авторские утилиты должны позволять авторам таблиц стилей добавлять и редактировать дескрипторы шрифтов. В некоторых случаях авторские утилиты могут оказать помощь путём локальной проверки установленных шрифтов и автоматической генерации дескрипторов для шрифтов, на которые имеются ссылки в таблице стилей. Эта функция может выполняться также утилитами, подразделяющими или конвертирующими шрифты для готовности к динамической загрузке.
Данная таблица указывает, где может быть найдена такая информация для шрифтов обычных форматов.
'ascent' | 'Ascender' в файле AFM/PFM | 'Ascender' в таблице 'hhea' или (предпочтительнее) 'sTypoAscender' в таблице 'OS/2' | 'horizontalBefore' в таблице 'fmtx |
'baseline' | таблица bsln, см. примечание ниже | ||
'bbox' | FontBBox, словарь шрифтов | вхождения таблицы 'head' - 'xMin', 'xMax', 'yMin' и 'yMax' | |
'cap-height' | CapHeight в файле AFM/PFM | ||
'descent' | 'Descender' в файле AFM/PFM | ||
'mathline' | таблица bsln | ||
'font-family' | FamilyName, fontinfo-словарь | таблица name | |
'stemh' | StdHW, приватный словарь файла AFM/PFM | ||
'stemv' | /StdVW, приватный словарь | таблица cvt | |
'topline' | таблица bsln | ||
'unicode-range' | cmap file | таблица OS/2, см. Приложение С | |
'units-per-em' | FontMatrix, словарь шрифтов | unitsPerEm, таблица head | |
'widths' | таблица hmtx |
Внутри таблицы bsln, ideographic centered baseline может использоваться для растяжений преобладающих идеографических символов, а ideographic low baseline больше подходит для идеографических символов при прогоне преобладающих символов Latin, Greek или Cyrillic.
Полное описание форм шрифта italic
Показаны различные типы шрифтов и их italic-версии.
Изображено 8 строк текста: sans-serif, sans-serif-oblique, sans-serif-bold, sans-serif-bold-oblique, serif-bold, serif-bold-italic, serif, serif-italic.
Мы видим, что глифы italic не просто наклонены по сравнению с исходной версией roman, но отличаются также и начертанием.
Полное описание кернинга
Изображён пример кернинга.
Буквы "AVfj" выведены крупным шрифтом italic serif. Мы видим, что нижняя правая часть "A" пересекает вертикальную ось, отделяющую её от "V" справа. Таким же образом, "f" и "j" входят в пространство друг друга.
Справочник терминологии шрифтов
Это приложение является информативным, но не нормативным.
DocLockTM
Bitstream-технология DocLockTM гарантирует, что TrueDoc PFRs могут использоваться только на том сайте, где они опубликованы. TrueDoc PFR, перемещённый на другой сайт или имеющий на себя ссылку с другого сайта, работать не будет.
Digital Signature/Цифровая подпись
Часть технологии доверительного управления, используемая для предоставления подтверждения о ресурсе.
Font Caching/Кэширование шрифта
Кэширование шрифта позволяет временно копировать шрифты на клиентской системе. Шрифты часто хранятся на диске с другими кэшированными объектами, такими как графика, специфичными для пользовательского агента (ПА).
Font Face
"Разновидность", относится к определённой разновидности шрифта, за исключением его размера.
Font Matching/Совпадение шрифтов
Совпадение шрифтов - это процесс выбора похожего шрифта на базе одного или нескольких атрибутов основного шрифта. Обычные атрибуты: serif/с засечками, sans-serif/без засечек, вес, высота заглавных, x-высота, spacing/плотность, язык и posture/позиция. Совпадение шрифтов зависит от алгоритма и разнообразия шрифтов-кандидатов.
Glyph Representation Sub-setting/Подразделение Представления Глифов
Подразделение (поднабор) представления глифов это процесс, при котором ненужные глифы (вместе с их информацией об ориентации и кернинге) удаляются из основного шрифта, чтобы создать уменьшенный поднабор шрифта, покрывающий определённый документ или набор документов. Это обычный способ для документов, использующих идеографическое письмо, где дополнение глифами базового шрифта может быть очень обширным. Подразделение представления глифов для документов, использующих письмо с лигатурами, такое как арабское, представляет трудности при отсутствии сведений о правилах формирования лигатур на конечной системе вывода.
Intellifont
Intellifont-технология была разработана фирмой Agfa и является первичным форматом для Hewlett-Packard и других принтеров, использующих язык PCL5. Это также первичный формат шрифтов компьютеров Amiga.
Infinifont
Техника синтезирования шрифтов, которая, задавая число Panose-1 (и, по выбору, дополнительные данные описания шрифта), может генерировать красивый шрифт без экстраполирования из одного мастер-контура или интерполяции между двумя или более контурами (см. [INFINIFONT]).
Italic
Класс форм букв латиницы, которые более курсивны, чем буквы roman-форм, но менее курсивны, чем формы ручного письма. Часто пары шрифтов разрабатываются и используются совместно; один - roman с засечками, а другой - italic. Другие термины для описания этого класса форм букв: cursive и, для кириллицы, kursiv. Для разновидностей sans-serif дополнительная разновидность - это часто наклонный вариант, а не другой класс форм букв.
[D]
Kerning/Кернинг
Изменение расстояния между выбранными представлениями глифов, которое может быть слишком большим или слишком маленьким, чтобы получить более ровный типографский цвет.
[D]
Multiple Master Font/Множественный мастер-ширфт
Множественный мастер-шрифт содержит два первичных шрифта, которые используются со специальными программами вывода для предоставления интерполированного результата. Adobe Systems предоставляет механизм, позволяющий использовать параметры для управления выводом или интерполированным вводом шрифта. Эти параметры обычно описывают характеристики оригинального шрифта, и множественный мастер-результат называется "синтезированный шрифт"
Open Type
Open Type это расширение шрифтового формата TrueType, которое содержит дополнительную информацию, расширяющую возможности шрифта в поддержке высококачественной международной печати. Open Type может ассоциировать один символ с несколькими глифами представления и комбинации символов - с одним глифом (словообразующая лигатура). Open Type содержит двухмерную информацию для поддержки свойств комплексного позиционирования и присоединения глифов. TrueType Open и OpenType содержат конкретную информацию о письме и языке, так что текстовые процессоры могут уточнять своё поведение соответственно (см. [OPENTYPE]).
Server Font/Серверный шрифт
Server Font это ресурс шрифта, размещённый на сервере и вызываемый определением WebFont. ПА может использовать этот ресурс для отображения страницы.
Speedo
Speedo -технология шрифтов была разработана Bitstream и является первичным форматом шрифта на компьютерах Atari ST и Falcon. Используется также в компьютерах с запущенной системой X window.
TrueDoc
TrueDoc -технология была разработана Bitstream для создания, переноса и прорисовки платформонезависимых масштабируемых объектов шрифта в web. Создание объектов шрифта выполняется в character shape recorder (CSR) TrueDoc, а вывод объектов шрифта - в character shape player (CSP) TrueDoc. Технология предназначена для просмотра и печати в web.
TrueDoc Portable Font Resource/Переносимые Ресурсы Шрифта
TrueDoc Portable font resource (или PFR) это платформонезависимый масштабируемый объект шрифта, вырабатываемый CSP. Ввод может быть TrueType или Type 1 любого ответвления Windows, Mac или Unix. TrueDoc Portable Font Resources предоставляют хорошие пропорции компрессии, платформонезависимы и, поскольку они не в первичном формате шрифта (TrueType или Type 1), не могут легко инсталироваться.
TrueType
TrueType это формат, разработанный Apple и лицензированный Microsoft. TrueType это первичный формат шрифта операционной системы для Windows и Macintosh. TrueType содержит иерархический набор таблиц и глифов-изображений. Символы могут выводиться на посимвольном базисе или на базе размера в пунктах, давая превосходное качество для данных разрешений экрана. Шрифты TrueType для Windows и Mac мало отличаются, хотя и могут быть достаточно различными для предотвращения межплатформенного использования.
TrueType Collection/Коллекция TrueType
TrueType Collection (или TTC) это расширение формата TrueType, включающее таблицы, позволяющие содержать много шрифтов TrueType в одном файле шрифта TrueType. Файлы TrueType collection встречаются теперь относительно редко.
TrueType GX Fonts/TrueType Шрифты GX
TrueType GX Fonts содержат расширения стандартного формата TrueType, допускающие изменяющиеся шрифты, подобные шрифтам Multiple Master. Может быть несколько мутаций параметров (осей), таких как вес, высота и наклон. Ось может определяться, что позволяет получить практически любой эффект. TrueType GX может поддерживать также альтернативные замещения представлений глифов для лигатур, контекстуальных форм, дробей и т.д. Для вычислений TrueType GX доступны только на Mac (см. [TRUETYPEGX]).
Type 1 font/Шрифты Type 1
Шрифты Type 1, разработанные Adobe Systems, были одним из первых доступных масштабируемых форматов. Шрифты Type 1 обычно содержат 228 символов с глифами-изображениями, описанных с использованием кривых третьей степени bezier. Mac, Windows и X имеют схожие, но отдельные форматы; Adobe предоставляет Adobe Type Manager для всех трёх платформ. Type1c это более ранняя форма с компрессией без потерь для глифов-изображений Type 1.
URI Binding/Связывание с URI
Процесс подключения определённого ресурса шрифта к данному Web-сайту путём внедрения кодированного URI или цифрового подтверждения использования в ресурс шрифта.
Имеется множество различных форматов шрифта для использования на разных платформах. Чтобы выбрать предпочтительный формат шрифта, используется свободная дискуссия (см. [NEGOT]). Всегда можно определить, когда ссылка на шрифт отсутствует, поскольку URI находится внутри описания шрифта. Данная конкретная реализация будет знать, какие форматы загружаемых шрифтов она поддерживает и может, соответственно, использовать подсказки формата для исключения загрузки шрифтов неподдерживаемых форматов.
Вычисление Диапазонов Unicode для TrueType
Эта информация доступна в шрифте при просмотре битов 'ulUnicodeRange' в таблице 'OS/2' (если она ('OS/2') её имеет), которая (таблица) содержит битовые поля представления набора. Эта таблица определена в ревизии 1.66 спецификации TrueType от Microsoft. Можно рассматривать эту информацию как набор, где каждый элемент соответствует блоку символов Unicode 1.1, и присутствие этого элемента в наборе означает, что шрифт имеет один или более глифов-изображений для представления по меньшей мере одного символа этого блока. Набор содержит 128 элементов, как описано ниже. Порядок обычно следует порядку стандарта Unicode 1.1. Эта таблица может использоваться для конвертации информации в шрифте TrueType в дескриптор 'unicode-range' CSS.
0 | 1 | Basic Latin | U+0-7F |
1 | 2 | Latin-1 Supplement | U+80-FF |
2 | 4 | Latin-1 Extended-A | U+100-17F |
3 | 8 | Latin Extended-B | U+180-24F |
4 | 1 | IPA Extensions | U+250-2AF |
5 | 2 | Spacing Modifier Letters | U+2B0-2FF |
6 | 4 | Combining Diacritical Marks | U+300-36F |
7 | 8 | Greek | U+370-3CF |
8 | 1 | Greek Symbols and Coptic | U+3D0-3EF |
9 | 2 | Cyrillic | U+400-4FF |
10 | 4 | Armenian | U+530-58F |
11 | 8 | Hebrew | U+590-5FF |
12 | 1 | Hebrew Extended-A Hebrew Extended-B | ?? какие диапазоны ?? |
13 | 2 | Arabic | U+600-69F |
14 | 4 | Arabic Extended | U+670-6FF |
15 | 8 | Devanagari | U+900-97F |
16 | 1 | Bengali | U+980-9FF |
17 | 2 | Gurmukhi | U+A00-A7F |
18 | 4 | Gujarati | U+A80-AFF |
19 | 8 | Oriya | U+B00-B7F |
20 | 1 | Tamil | U+B80-BFF |
21 | 2 | Telugu | U+C00-C7F |
22 | 4 | Kannada | U+C80-CFF |
23 | 8 | Malayalam | U+D00-D7F |
24 | 1 | Thai | U+E00-E7F |
25 | 2 | Lao | U+E80-EFF |
26 | 4 | Georgian | U+10A0-10EF |
27 | 8 | Georgian Extended | U+10F0-10FF ?? |
28 | 1 | Hangul Jamo | U+1100-11FF |
29 | 2 | Latin Extended Additional | - |
30 | 4 | Greek Extended | U+1F00-1FFF |
31 | 8 | General Punctuation | U+2000-206F |
32 | 1 | Superscripts and Subscripts | - |
33 | 2 | Currency Symbols | U+20A0-20CF |
34 | 4 | Combining Marks for Symbols | U+20D0-20FF |
35 | 8 | Letterlike Symbols | U+2100-214F |
36 | 1 | Number Forms | U+2150-218F |
37 | 2 | Arrows | U+2190-21FF |
38 | 4 | Mathematical Operators | U+2200-22FF |
39 | 8 | Miscellaneous Technical | U+2300-23FF |
40 | 1 | Control Pictures | U+2400-243F |
41 | 2 | Optical Character Recognition | U+2440-245F |
42 | 4 | Enclosed Alphanumerics | U+2460-24FF |
43 | 8 | Box Drawing | U+2500-257F |
44 | 1 | Block Elements | U+2580-259F |
45 | 2 | Geometric Shapes | U+25A0-25FF |
46 | 4 | Miscellaneous Symbols | U+2600-26FF |
47 | 8 | Dingbats | U+2700-27BF |
48 | 1 | CJK Symbols and Punctuation | U+3000-303F |
49 | 2 | Hiragana | U+3040-309F |
50 | 4 | Katakana | U+30A0-30FF |
51 | 8 | Bopomofo | U+3100-312F |
52 | 1 | Hangul Compatibility Jamo | U+3130-318F |
53 | 2 | CJK Miscellaneous | ?? |
54 | 4 | Enclosed CJK Letters and Months | U+3200-32FF |
55 | 8 | CJK compatibility | U+3300-33FF |
56 | 1 | Hangul | U+AC00-D7FF |
59 | 8 | CJK Unified Ideographs | U+4E00-9FFF |
60 | 1 | Private Use Area | U+E000-F8FF |
61 | 2 | CJK Compatibility Ideographs | U+F900-FAFF |
62 | 4 | Alphabetic Presentation Forms | U+FB00-FB4F |
63 | 8 | Arabic Presentation Forms-A | U+FB50-FDFF |
64 | 1 | Combining Half Marks | U+FE20-FE2F |
65 | 2 | CJK compatibility Forms | U+FE30-FE4F |
66 | 4 | Small Form Variants | U+FE50-FE6F |
67 | 8 | Arabic Presentation Forms-B | U+FE70-FEFF |
68 | 1 | Halfwidth and Fullwidth Forms | U+FF00-FFEF |
69 | 2 | Specials | U+FFF0-FFFD |
В системе битовых полей TrueType есть проблема, заключающаяся в том, что эта система присоединена к Unicode 1.1 и не справляется с расширением Unicode - например, невозможно представить Tibetan или другие виды письма, введённые в Unicode 2.0 или более поздних ревизиях.
Значения Чисел Panose
[D]
Числа Family, Serif Style и Proportion используются Windows95 для выбора и совпадений шрифтов.
Значения десяти чисел и допустимые значения (в скобках) даны ниже для самого общего случая, когда цифра "family" - 2, Text and Display. (Если первая цифра имеет другие значения, то остальные девять цифр имеют другой смысл (значение)). Детальную информацию о Panose-1 см. в [PANOSE].
Family
Any (0)No Fit (1)[PANOSE] Latin Text and Display (2)[PANOSE] Latin Script (3)[PANOSE] Latin Decorative (4)[PANOSE] Latin Pictorial (5)
Serif Style
Any (0)No Fit (1)Cove (2)Obtuse Cove (3)Square Cove (4)Obtuse Square Cove (5)Square (6)Thin (7)Bone (8)Exaggerated (9)Triangle (10)Normal Sans (11)Obtuse Sans (12)Perp Sans (13)Flared (14)Rounded (15)
Weight
Any (0)No Fit (1)Very Light (2)[100]Light (3) [200]Thin (4) [300]Book (5) [400] то же, что CSS1 'normal'Medium (6) [500]Demi (7) [600]Bold (8) [700] то же, что CSS1 'bold' Heavy (9) [800]Black (10) [900]Extra Black / Nord (11) [900] форсирует отображение в масштаб 100-900 CSS1
Proportion
Any (0)No Fit (1)Old Style (2)Modern (3)Even Width (4)Expanded (5)Condensed (6)Very Expanded (7)Very Condensed (8)Monospaced (9)
Contrast
Any (0)No Fit (1)None (2)Very Low (3)Low (4)Medium Low (5)Medium (6)Medium High (7)High (8)Very High (9)
Stroke Variation
Any (0)No Fit (1)No Variation (2)Gradual/Diagonal (3)Gradual/Transitional (4)Gradual/Vertical (5)Gradual/Horizontal (6)Rapid/Vertical (7)Rapid/Horizontal (8)Instant/Horizontal (9)Instant/Vertical (10)
Arm Style
Any (0)No Fit (1)Straight Arms/Horizontal (2)Straight Arms/Wedge (3)Straight Arms/Vertical (4)Straight Arms/Single Serif (5)Straight Arms/Double Serif (6)Non-Straight Arms/Horizontal (7)Non-Straight Arms/Wedge (8)Non-Straight Arms/Vertical 90)Non-Straight Arms/Single Serif (10)Non-Straight Arms/Double Serif (11)
Letterform
Any (0)No Fit (1)Normal/Contact (2)Normal/Weighted (3)Normal/Boxed (4)Normal/Flattened (5)Normal/Rounded (6)Normal/Off Center (7)Normal/Square (8)Oblique/Contact (9)Oblique/Weighted (10)Oblique/Boxed (11)Oblique/Flattened (12)Oblique/Rounded (13)Oblique/Off Center (14)Oblique/Square (15)
Midline
Any (0)No Fit (1)Standard/Trimmed (2)Standard/Pointed (3)Standard/Serifed (4)High/Trimmed (5)High/Pointed (6)High/Serifed (7)Constant/Trimmed (8)Constant/Pointed (9)Constant/Serifed (10)Low/Trimmed (11)Low/Pointed (12)Low/Serifed (13)
XHeight
Any (0)No Fit (1)Constant/Small (2)Constant/Standard (3)Constant/Large (4)Ducking/Small (5)Ducking/Standard (6)Ducking/Large (7)
Panose-2 (см. [PANOSE2]) это спецификация более исчерпывающей классификации шрифтов и технология совпадений, не ограниченные латиницей. Например, характеристики засечек латиницы могут сравниваться с окончаниями линий разновидности Kanji.
Значение Panose-2 не хранится в каком-либо известном формате шрифта, но может быть измерено.
Грамматика
Это грамматика LL(1) (но учтите, что большинство ПА не должны использовать её напрямую, поскольку она отражает не соглашения по разбору, а только синтаксис CSS2. Формат продуктов оптимизирован для удобства, и используются некоторые сокращения Yacc (см. [YACC]):
*: 0 или более+: 1 или более?: 0 или 1|: разделитель альтернатив[ ]: группировка
Продуктами являются:
stylesheet : [ CHARSET_SYM S* STRING S* ';' ]? [S|CDO|CDC]* [ import [S|CDO|CDC]* ]* [ [ ruleset | media | page | font_face ] [S|CDO|CDC]* ]* ; import : IMPORT_SYM S* [STRING|URI] S* [ medium [ ',' S* medium]* ]? ';' S* ; media : MEDIA_SYM S* medium [ ',' S* medium ]* '{' S* ruleset* '}' S* ; medium : IDENT S* ; page : PAGE_SYM S* IDENT? pseudo_page? S* '{' S* declaration [ ';' S* declaration ]* '}' S* ; pseudo_page : ':' IDENT ; font_face : FONT_FACE_SYM S* '{' S* declaration [ ';' S* declaration ]* '}' S* ; operator : '/' S* | ',' S* | /* empty */ ; combinator : '+' S* | '>' S* | /* empty */ ; unary_operator : '-' | '+' ; property : IDENT S* ; ruleset : selector [ ',' S* selector ]* '{' S* declaration [ ';' S* declaration ]* '}' S* ; selector : simple_selector [ combinator simple_selector ]* ; simple_selector : element_name? [ HASH | class | attrib | pseudo ]* S* ; class : '.' IDENT ; element_name : IDENT | '*' ; attrib : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S* [ IDENT | STRING ] S* ]? ']' ; pseudo : ':' [ IDENT | FUNCTION S* IDENT S* ')' ] ; declaration : property ':' S* expr prio? | /* empty */ ; prio : IMPORTANT_SYM S* ; expr : term [ operator term ]* ; term : unary_operator? [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | TIME S* | FREQ S* | function ] | STRING S* | IDENT S* | URI S* | RGB S* | UNICODERANGE S* | hexcolor ; function : FUNCTION S* expr ')' S*
/* * Имеется ограничение: цвет обязан иметь * 3 или 6 16-ричных цифр (т.е., [0-9a-fA-F]) после "#", * например, "#000" это OK, но "#abcd" - нет. */ hexcolor : HASH S* ;
Лексический сканер
Это сканер, написанный в нотации Flex (см. [FLEX]). Сканер является нечувствительным к регистру.
Два "\377" представляют наибольшее число символа, которое может быть обработано текущей версией Flex (десятеричное 255). Они должны читаться как "\4177777" (десятеричное 1114111), которое является наивысшей возможной кодовой точкой в Unicode/ISO-10646.
%option case-insensitive
h [0-9a-f] nonascii [\200-\377] unicode \\{h}{1,6}[ \t\r\n\f]? escape {unicode}|\\[ -~\200-\377] nmstart [a-z]|{nonascii}|{escape} nmchar [a-z0-9-]|{nonascii}|{escape} string1 \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\" string2 \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\'
ident {nmstart}{nmchar}* name {nmchar}+ num [0-9]+|[0-9]*"."[0-9]+ string {string1}|{string2} url ([!#$%&*-~]|{nonascii}|{escape})* w [ \t\r\n\f]* nl \n|\r\n|\r|\f range \?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))
%%
[ \t\r\n\f]+ {return S;}
\/\*[^*]*\*+([^/][^*]*\*+)*\/ /* ignore comments */
"<!--" {return CDO;} "-->" {return CDC;} "~=" {return INCLUDES;} "|=" {return DASHMATCH;}
{string} {return STRING;}
{ident} {return IDENT;}
"#"{name} {return HASH;}
"@import" {return IMPORT_SYM;} "@page" {return PAGE_SYM;} "@media" {return MEDIA_SYM;} "@font-face" {return FONT_FACE_SYM;} "@charset" {return CHARSET_SYM;} "@"{ident} {return ATKEYWORD;}
"!{w}important" {return IMPORTANT_SYM;}
{num}em {return EMS;} {num}ex {return EXS;} {num}px {return LENGTH;} {num}cm {return LENGTH;} {num}mm {return LENGTH;} {num}in {return LENGTH;} {num}pt {return LENGTH;} {num}pc {return LENGTH;} {num}deg {return ANGLE;} {num}rad {return ANGLE;} {num}grad {return ANGLE;} {num}ms {return TIME;} {num}s {return TIME;} {num}Hz {return FREQ;} {num}kHz {return FREQ;} {num}{ident} {return DIMEN;} {num}% {return PERCENTAGE;} {num} {return NUMBER;}
"url("{w}{string}{w}")" {return URI;} "url("{w}{url}{w}")" {return URI;} {ident}"(" {return FUNCTION;}
U\+{range} {return UNICODERANGE;} U\+{h}{1,6}-{h}{1,6} {return UNICODERANGE;}
. {return *yytext;}
Имеются некоторые различия между вышеприведённым синтаксисом и синтаксисом, специфицированным в рекомендациях CSS1 ([CSS1]). Большинство этих отличий - из-за новых понятий в CSS2, которые отсутствовали в CSS1. Другие - из-за того, что грамматика была переписана, чтобы сделать её более читабельной. Однако есть и некоторые несовместимые изменения, которые вызвали бы ошибку в CSS1. Они разъяснены ниже.
Таблицы стилей CSS1 могут быть кодированы только 1-байт-на-символ, как ASCII и ISO-8859-1. CSS2 не имеет таких ограничений. На практике было мало трудностей с экстраполированием сканераа CSS1, и некоторые ПА принимали 2-байтное кодирование.CSS1 допускал только четыре 16-ричных числа после обратного слэша (\) для ссылок на символы Unicode, CSS2 допускает шесть. Кроме того, CSS2 допускает символы пробела в качестве разграничителей escape-последовательностей. Например, в соответствии с CSS1, строка "\abcdef" имеет 3 буквы (\abcd, e и f), а в соответствии с CSS2 - только одну (\abcdef).Символ табуляции (ASCII 9) в строках не допускается. Однако, поскольку строки в CSS1 использовались только для имён шрифтов и для URL, единственное, что может привести к несовместимости между CSS1 и CSS2, это если таблица стилей содержит семейство шрифтов, имеющее символ табуляции в своём имени.Также символы новой строки (escape-последовательность с обратным слэшем) не допускались в строках CSS1.CSS2 разбирает число со следующим непосредственно за ним идентификатором как обозначение DIMEN (т.е. как неизвестный модуль). CSS1 разбирал его как число и как идентификатор. Это означает, что в CSS1 объявление 'font: 10pt/1.2serif' было корректным, а в 'font: 10pt/12pt serif'; в CSS2 требуется пробел перед "serif". (Некоторые ПА принимали первый пример, но не принимали второй.)В CSS1 имя класса могло начинаться цифрой (".55ft"), если только оно не было размером (".55in"). В CSS2 такие классы разбираются как неизвестные размеры (чтобы позволить в будущем дополнение новых модулей). Чтобы сделать ".55ft" действующим классом, CSS2 требует, чтобы первая цифра была escape (".\55ft")
Определение "содержащего блока"
'ascent' | <number> | не определено |
'baseline' | <number> | 0 |
'bbox' | <number>, <number>, <number>, <number> | не определено |
'cap-height' | <number> | не определено |
'centerline' | <number> | не определено |
'definition-src' | <uri> | не определено |
'descent' | <number> | не определено |
'font-family' | [ <family-name> | <generic-family> ] [, [<family-name> | <generic-family> ]]* | зависит от пользовательского агента |
'font-size' | all | <length> [, <length>]* | 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 |
'font-style' | all | [ normal | italic | oblique ] [, [normal | italic | oblique] ]* | all |
'font-variant' | [normal | small-caps] [,[normal | small-caps]]* | normal |
'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 |
'mathline' | <number> | не определено |
'panose-1' | [<integer>]{10} | 0 0 0 0 0 0 0 0 0 0 |
'slope' | <number> | 0 |
'src' | [ <uri> [format(<string> [, <string>]*)] | <font-face-name> ] [, <uri> [format(<string> [, <string>]*)] | <font-face-name> ]* | не определено |
'stemh' | <number> | не определено |
'stemv' | <number> | не определено |
'topline' | <number> | не определено |
'unicode-range' | <urange> [, <urange>]* | U+0-7FFFFFFF |
'units-per-em' | <number> | не определено |
'widths' | [<urange> ]? [<number> ]+ [,[<urange> ]? <number> ]+] | не определено |
'x-height' | <number> | не определено |