Будущее CSS

В связи с участившимися сообщениями о том, что в CSS хотят добавить переменные, анимацию, трансформацию и прочая, хотелось бы немного отстраненно порассуждать на эту тему.

CSS, которому уже 12 лет, изначально был задуман и разрабатывался как средство для описания внешнего вида документа. С тех пор утекло много воды и технология претерпела значительные изменения и дополнения. На данный момент, рабочая версия по стандарту W3C, принятая в 2006 году – Уровень 2.1. Уровень 3 находится в состоянии разработки (есть черновик), и ожидается с нетерпением многими разработчиками.

Вокруг будущего CSS ходит много слухов и предположений, коротые муссируются и множатся, выливаются в дискуссии и споры. Ведь по сути, если хотя бы половина предлагаемых изменений будет осуществлена, то CSS превратится в (полноценный?) язык программирования визуальной составляющей веб-документов.
И все бы хорошо, если бы это не вносило смуту в ряды разработчиков, часть которых небезосновательно утверждает что использование переменных на уровне документа это благо, так как позволяет с большей легкостью изменять значения тех или иных свойств, да и сами свойства. Другая часть разработчиков не согласна с этими утверждениями и твердит о том, что переменные – зло, так как толка от них мало, они только путают и тд.

И те и другие утверждения имеют право на существование в определенных ситуациях, так как ситация неоднозначна. Но переменные – это еще ничего. Как на счет анимации элементов? До сих пор анимация является прерогативой Javascript’a, который может быть потеснен с этой должности, по крайней мере частично.

Такие моменты, как вращение элементов вокруг своей оси, смещение по плоскости и сжатие с растягиванием, могут быть подхвачены берсерками CSS и внедрены по-самое-не-балуйся. Причем любой, более-менее разбирающийся в CSS, но не разбирающийся в Javascript, скажет что был бы этому рад. В данной ситуации, Javascript, как основное средство создания динамики в веб-документах, отходит на второй план, если не дальше.

В складывающейся ситуации, в стройных рядах веб-разработчиков может случиться смута, в которой начнут стираться грани между разделением логики, динамики, контента и оформления.

Может быть я сгущаю краски и все не так сложно. Давайте рассмотрим такую ситуацию. Предположим, в теории, что Эра CSS наступила и все самые смелые планы по расширению и выделению CSS в новый язык сбылись. Как я вижу это?

Использование переменных на уровне файла стилей вырастет в желание использовать глобальные переменные. В каждом проекте, состоящем больше чем из 3/5/10 страниц будет глобальный мастер-файл стилей с переменными, файл стилей, отвечающий за анимацию, файл, отвечающий за типографику и тд. Будет путаница с переменными, так как не ясно каков будет приоритет их применения. Построчно, как чтение CSS-файла сейчас, или нет? Можно ли будет выносить переменные?

Javascript станет транспортом информации от клиента к серверу и абстрагируется от оформления окончательно. Так как возможностей CSS не будет хватать для полного управления элементом (я просто не верю, что этот момент наступит), то часть разработчиков будет продолжать использовать JS для создания динамики страниц. Порядка это не добавит.

Разметка документов упростится до минорной, в любом случае, немалая ее часть будет генерироваться JS и видоизменяться в CSS. div’ы (divisions) станут основными базовыми элементами разметки. С помощью CSS они будут принимать любую форму, от круга до многоугольника. Возможностей станет гораздо больше и у дизайнеров не будут скованы руки.

Веб от всего этого только выиграет. Откроется большой простор для деятельности и креатива. Читая по кофейной гуще о возможных путях развития CSS, у меня уже чешутся руки создать что-нибудь эдакое!

А теперь ушат ледяной воды. Кто-нибудь спросил разработчиков браузеров, в частности MSIE, о их планах на будущее? Или все прогрессивные разработчики будут писать сайты исключительно для альтернативных браузеров (а не для людей)? А остальные по-старинке, будут оформлять контент с помощью CSS2.1(2.9?), где динамика, анимация и прочее останутся вотчиной ECMA Script’a?

Любые фундаментальные изменения должны быть четко структурированы и осмыслены; роли ведущих игроков должны быть распределены и расписаны, иначе не избежать неразберихи. А еще хорошо бы, чтобы такие глобальные вещи как языки разметки, программирования и оформления перестали быть Рекомендациями и превратились бы в Стандарты, за спиной которых стоит Организация, требующая их выполнения и соблюдения.

Развитие CSS – несомненное благо. И оно всенепременно затронет другие компоненты Веба. Вопрос только в том, что из фантазий войдет в реальность, а что так и останется нереализоваными мечтами? Время покажет.

19 thoughts on “Будущее CSS

  1. Вообще, тенденция интересная и задумка глобальная. Надо посмотреть во что все выльется на практике ))

  2. Вообще идея переменных мне нравится, а вот динамика в стилях совершенно нет.

    Спрашивал у Алекса Могилевского РИТе об этих предложениях в CSS, он сказал, что это слишком сложные вещи, чтобы их сразу вот так внедрить. Как я понял нужны год разработки спецификаций.

    По поводу перехода рекомендаций в статус стандартов я как-то писал у себя в блоге. Однако отказался от озвученной идеи после того, как MS раскрыла планы по поводу IE8.

  3. даже если то, что Вы (или не Вы :-) ) предсказываете и вправду будет иметь место, то произойдёт это только через пару лет, потом еще годик, чтобы производители тройки браузеров поработали над совместимостью, годик на исправление всякой лабуды, а там уже компьютеры будут хранить данные на апельсиновых корках…

  4. [quote comment=”5766″]Почему-то нет ссылки на оригинал основного текста…[/quote]
    Вы о чем?

    [quote comment=”6308″]даже если то, что Вы (или не Вы :-) ) предсказываете и вправду будет иметь место, то произойдёт это только через пару лет, потом еще годик, чтобы производители тройки браузеров поработали над совместимостью, годик на исправление всякой лабуды, а там уже компьютеры будут хранить данные на апельсиновых корках…[/quote]
    Как знать, как знать, уже сейчас есть браузеры, которые поддерживают свойства из CSS3, который пока не является стандартом.

  5. [quote post=”122″]поддерживают свойства из CSS3, который пока не является стандартом.[/quote]
    Ну и 2.1 тоже не является стандартом (со слов Алекса Могилевского), а планируется к принятию только через год-полтора. Таже ситуация похоже и с тройкой будет – браузеры и стандарт будут друг под друга подгонять.

  6. Олег Лобач, вы путаете теплое с мягким. Во-первых CSS2.1 уже кандидат в рекомендацию. А CSS3 построен на модульности, в которой часть модулей имеет такой же статус кандидата в рекомендацию.

  7. [quote post=”122″]вы путаете теплое с мягким[/quote]
    Я повторил то, что говорил Алекс на РИТе. А уж его словам можно доверять. Или Вы так не считаете?

  8. Ну правильно. От эволюционных желаний не уйдешь. Мы стремимся к упрощению и повышению мобильности своего инструментария. Хотя сильное вытеснение Явы новым средством думаю пока маловероятно.

  9. Олег Лобач, я имел в виду то, сто кандидат, это уже на 99% рекомендация. Могилевского я тоже внимательно слушал и вопросы задавал. =)

  10. Zigzag, за полтора года кое-что может измениться, хотя и маловероятно. По крайней мере, должны устранить возможность вольного трактования стандарта.

  11. Олег Лобач, CSS2.1 и является причесанной версией CSS2: убраны некоторые свойства, четко расписаны, трактовавшиеся вольно раньше. Изменения будут внесены только в случае обнаружения ошибок уже.

  12. Если в CSS добавят переменные, то это уже будет не CSS, а недоделанный JavaScript. Ну и какой, скажите мне пожалуйста, смысл? Тогда уж проще использовать тот же JS для управления внешним видом. Благо объект style никто не отменял.

  13. Nikita, всетаки согласись, что это было бы удобно, чем бы потом не стал CSS =)

  14. Zigzag, нет, согласиться не могу, потому что не вижу потребности в этих переменных. Если мне нужны переменные, я воспользуюсь javascript. Если css полностью допшут до уровня javascript, то я с удовольствием буду использовать его. Но тогда, мне кажется, браузеры начнут добавлять в настройках галочки отключения css по-умолчанию, а не как dev-панель. Почему, например, используют css-rollover, а не js? Правильно — потому, что не тормозит и потому, что работает при отключенном js. Что случится с css если его нагрузить программисткими фишками. На мой взгляд, визуальное представление должно быть описано на уровне инструкций. Динамика — дело программирования.

  15. В данной дискуссии я склонен согласиться с доводами Никиты.

    Zigzag, давай пиши уже! )

  16. Фигня все это, если концептуально посмотреть и рассудить.

Leave a Reply

Your email address will not be published. Required fields are marked *