О прекращении поддержки CSS-выражений
Стоит сказать, что дизайн новых и уже имеющихся функций Internet Explorer обусловлен основными критериями дизайна, среди которых соответствие стандартам, производительность, надежность и безопасность. В результате CSS-выражения более не поддерживаются в режиме стандартов в IE8. Об этом изменении уже сообщалось в блоге IE8, однако, в данной статье мы раскроем дополнительные подробности этого решения. Следующая ниже сессия вопросов и ответов позволит понять причины этого решения и влияние, которое оно может оказать на ваш сайт.
Что такое CSS-выражения?
Известные также как динамические свойства (в оригинале "dynamic properties"), эти запатентованные CSS-расширения впервые были представлены в Internet Explorer 5. Задолго до появления JS-библиотек jQuery или Dojo, эти выражения позволяли разработчикам динамически прикреплять к странице скрипты с помощью CSS-селекторов. Так, к примеру, следующий CSS-селектор декларирует обновление фонового цвета определенных блоков страницы в зависимости от времени суток:
div.title { background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" ); }
Почему мы отказались от поддержки выражений?
Для соответствия стандартам:
· Выражения являются проприетарными для Internet Explorer, и, как следствие, не являются не могут быть использованы в других продуктах
· Чаще всего выражения использовались, чтобы исправить ошибки IE или эмулировать те функции CSS 2.1, которые еще не поддерживались браузером, например, min-width и max-width. Мы не просто исправили большинство этих ошибок в IE8 – теперь наш движок визуализации страниц имеет встроенную поддержку таких функций.
Для улучшения производительности:
· Использование выражений требует значительного времени исполнения. Эксперты по производительности сайтов, в частности Стив Саудерс (Steve Souders), советуют избегать их использования для улучшения производительности браузера.
Для сокращения поверхности атаки:
· Так как выражения подразумевают исполнение скриптов, CSS-выражения создают вектор атаки с возможностью инъекции скрипта.
Доступны ли выражения в IE7 и режиме обратной совместимости (quirks mode )?
Да. Для обратной совместимости CSS-выражения все еще исполняются в режиме Quirks и IE7. Но начиная с IE8 Beta 2, они игнорируются в режиме стандартов IE8.
Страницы на моем сайте используют CSS-выражения. Каким образом скажется на мне отказ от их использования?
Благодаря новому движку визуализации страниц большинство выражений, созданных для решения проблем с отсутствующими функциями CSS 2.1, попросту более не нужны. Мы ожидаем, что неподдерживаемые или неправильно интерпретируемые свойства будут интерпретированы в правильном режиме. Для выражений, используемых для более специфических задач, по сути, можно использовать обычный JavaScript, требующий меньших временных затрат для исполнения. Конечно же, специфика зависит от вашего приложения.
Прекращение поддержки выражений – функции, часто используемой для исправления наиболее часто встречающихся проблем, над решением которых мы много работали в данном релизе, – поможет сделать IE8 более совместимым со стандартами, более быстрым и безопасным для наших пользователей.
Сильвейн Галиньо (Sylvain Galineau),
программный менеджер Internet Explorer