CSS Houdini - революция будущего в веб-разработке
![CSS Houdini - революция будущего в веб-разработке](/uploads/posts/2016-04/1459495895_d66c15c08a5090921a2fe84f3e86c28a.png)
Часто складывается такое впечатление, что развитие браузеров - это бесконечный цикл разочарования для веб-разработчиков. Когда в вебе появляется какой-то новый стандарт, возможно, один из браузеров реализует его как функцию. И это выглядит здорово. Но, за этим следует 5-10 лет ожидания, что эта функция станет жизнеспособной. Вспомните, сколько лет понадобилось, чтобы заставить PNG работать в любом браузере.
Многое еще может измениться, но на данный момент, проект Houdini – это коллекция действительно стоящих идей разработчиков, способных перерасти во что-то большее.
В идеале, все крупные браузеры будут реализовывать API основанное на Houdini. Это позволит разработчикам задействовать рендеринг на стороне браузера, объясняя ему через javascript, что и как должно работать. Другими словами, можно будет добавлять собственные особенности CSS, специфичные для каждого сайта.
Допустим, вы захотите построить макет каменной кладки на своем сайте. Вы не хотите использовать внешний модуль JS, поскольку он будет громоздким и медленным. Таким образом, вместо того, чтобы пользоваться JS рендерингом браузера для вычисления данных макета, вы бы укажите движку CSS рендеринга что нужно делать.
Затем, в своих CSS стилях, вы бы могли просто включить примерно такой код:
.div { display: layout(masonry); }
Браузер, понимающий, как реализовать такой макет, сделает все остальное. Так как изначально браузер делает рендеринг самостоятельно, это намного быстрее, чем использование Polyfill.
Это звучит великолепно, но существует несколько потенциальных проблем. Во-первых, это может занять годы на реализацию в браузерах, и еще больше на понимание пользователями. Во-вторых, как будут работать объяснения через JS. Если они будут включены в HTML, как любой JS файл, пользователь сможет заблокировать их, и ничего не увидит.
Тем не менее, как только эта функция будет реализована, появиться возможность использовать все новейшие функции CSS. Они будут как плагины JQuery. Разработчики смогут сами развивать их, обмениваться ими, и даже изменять.
Комментариев 0