Флексбоксы прощаются с экспериментальным статусом
Как стало известно из секретных¹ источников, близких к W3C, экспериментальный статус наших любимых флексбоксов почти наверняка останется в уходящем году. На прошлой неделе во время тайного совещания² члены Рабочей группы CSS приняли решение в ближайшее время перевести флексбоксы в статус кандидата в рекомендации. Т.е. в переводе с тайного языка W3C на обычный человеческий — объявить, что спецификация полностью готова, и браузеры могут смело ее реализовывать, а мы — использовать.
И в самом деле, сколько уже можно ждать. По W3Cшной традиции, для статуса кандидата в рекомендации нужно как миниум 2 совместимых реализации. А флексбоксы на сегодняшний день поддерживают больше 95% браузеров! В т.ч. больше 80% — без префикса. Для постсоветских стран CanIUse показывает цифры чуть поменьше, но их можно смело увеличивать в уме — там не учитываются Яндекс-браузер и другие «хромята», доля которых в нашей статистике вполне существенна. Если их приплюсовать, цифры будут недалеки от мировых.
А для самых ископаемых динозавров, которые еще порой приходится поддерживать (хотя, глядя на ту же статистику, даже странно — зачем?), как раз в этом месяце появился первый полифилл для актуальной спецификации. Наконец можно забыть старую путаницу с разными синтаксисами и необходимость резервных подпорок как страшный сон!
Радость от новости омрачает лишь одна мелочь: браузеры так и не смогли договориться, от чего отсчитывать отступы в процентах у флекс-элементов — от ширины или от высоты — и авторам спецификации не осталось ничего другого, кроме как… утвердить оба поведения как допустимые! Буквально. Можно так, а можно сяк — полная вседозволенность для браузеров. По этому поводу оставили такое замечание (опять же — перевод почти дословный!):
Примечание. Такое поведение — полный отстой, но оно точно отражает текущее состояние мира. Рабочая группа CSS стремится к тому, чтобы браузеры сошлись на каком-то одном поведении, и тогда спецификацию дополнят, чтобы это стало требованием.
Практически же спецификация просто рекомендует разработчикам не использовать для флекс-элементов процентных отступов по поперечной оси. По-моему, это не такое уж страшное ограничение.
Так что оставьте в старом году все страхи, будто «флексбоксы еще не готовы», и готовьтесь встречать новый год с новым механизмом раскладки! А в новом году нас ждет еще и не такое!
¹,² На самом деле, конечно, вся информация взята из открытых источников, но мир CSS от этого не становится менее загадочным и увлекательным! :)
P.S. Это тоже может быть интересно:
None Found
Ура, товарищи!!!
Что-то полифил у меня не взлетел…
Chrome — https://monosnap.com/file/NkIKDRQ4sdNRd430trB9EnGhFEEc29
IE9 — https://monosnap.com/file/xGoBCUWcOjuJ96TYlCExkepiR9gxA0
У меня одного такое?
А нет случайно живого примера проблемного кода?
-js-display
указан?скачал с официального репозитория примеры, закинул к себе на хост. сейчас уже удалил, но вы можете сделать то же самое, я думаю. если Вы автор плагина — могу снова на хост к себе закинуть для проверки.
Наскоро проверил в IE8, действительно, с растяжкой элементов там что-то странное. Я не автор полифила, но полифил опенсорсный, находить и исправлять баги в нем могут все.
Отличная новость. Чем больше сайтов начнёт их использовать, тем больше иньересных решений лэяутов появится.
Официальный запрос на перевод в новый статус отправлен! Может, до конца года даже успеют выполнить:)