Опубликовано новое официальное определение CSS (CSS-2017)
Рабочая группа CSS обновила документ по ссылке https://www.w3.org/TR/CSS/, традиционно указывающей на «последнюю версию CSS». На смену «снимку» CSS за 2015 год пришел новый «снимок», отражающий состояние технологии в нынешнем, 2017 году. Постоянная ссылка этой версии документа выглядит так: www.w3.org/TR/css-2017/. Так что те, кто скучает без красивых «номерных» обозначений («CSS3», «CSS4» и т.д.), имеют все основания называть его «CSS-2017» — по аналогии с ES2017 для последней версии JS.
В своей основе это список модулей CSS, признанных актуальными — достаточно проработанных для практического использования, но еще не успевших устареть. В официальное определение нового CSS вошли модуль синтаксиса CSS 3 уровня, модуль условных правил (добавивший директиву @supports и возможность вложенных медиавыражений), селекторы 3 уровня, каскад и наследование 3 уровня (да, CSS всё еще каскадные таблицы стилей!), модули значений и единиц, цветов, фонов и границ, «картиночных» значений и замещаемого контента, шрифтов, пользовательского интерфейса и режимов письма (все — 3 уровня), а также два модуля 1 уровня — многоколоночной раскладки и режимов наложения. Для оставшихся функций CSS (например, таблиц или блочного контекста форматирования) действующим стандартом остаются соответствующие им разделы CSS2.1.
Модули 1 уровня CSS-переходов, флексбоксов, CSS-трансформаций, пользовательских свойств (ранее известных как CSS-переменные), а также модуль текста 3 уровня попали в список «более-менее совместимо реализованных, но еще требующих доработки в мелочах и тестирования». А модули CSS-счетчиков 3 уровня, масок 1 уровня, CSS-фигур 1 уровня, декоративных эффектов для текста 3 уровня, модуль свойства will-change 1 уровня, голосовой модуль 1 уровня, модуль выравнивания блоков 3 уровня (унифицирующий поведение свойств типа justify-* и align-* для разных типов контейнеров), грид-раскладка 1 уровня, фильтры 1 уровня и CSS-фрагментация 3 уровня — в список «полностью проработанных и достаточно стабильных, но еще не оттестированных как следует». Это не значит, что использовать их рано: наоборот, надо как можно больше экспериментировать с ними и сообщать обо всех найденных багах — как в браузерных реализациях, так и в самих спецификациях (это работает: в новом документе есть одна небольшая правка авторства вашего покорного слуги:). Чем больше багов мы найдем и исправим — тем быстрее эти модули войдут в следующее официальное определение (хорошо бы уже в CSS-2018).
Радует, что с начала работ над новым «снимком» (см. предыдущую новость) до его публикации прошел всего месяц — W3C явно ускоряет темп (во многом благодаря открытой работе над спецификациями на Гитхабе). Так что следите за новинками, и… с наступившим новым CSS! :)
P.S. Это тоже может быть интересно:
Скоро выражение «программировать на css» — не будет шуткой =)
И не было, когда пишем css, мы занимаемся декларативным программированием.