Приложение В. Изменения по сравнению с CSS1
Это приложение является информативным, но не нормативным.
CSS2 построен на основе CSS1, и все
действительные таблицы стилей CSS1 являются
действительными таблицами стилей CSS2.
Изменения между спецификацией CSS1 (см. [CSS1])
и данной спецификацией делятся на три
группы: новая функциональность,
обновлённые описания функциональности CSS1 и
изменения по сравнению с CSS1.
В дополнение к функциональности 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.