Критерии проектирования — соответствие стандартам, производительность, надежность и безопасность — ограничивают как новые, так и существующие возможности браузера. В результате CSS-выражения (CSS expressions) больше не поддерживаются в стандартном режиме IE8. Это изменение уже анонсировалось в блоге IE, но разработчики решили поделиться дополнительными подробностями о своем решении. Они ответили на вопросы о том, что это было, почему от этого отказались и чем это нам грозит.
Также известные как Динамические выражения, проприетарные CSS-выражения появились в IE5. Задолго до появления JavaScript-библиотек, таких как jQuery и Dojo, они позволили веб-разработчикам динамически привязывать скрипты к странице через CSS-селекторы. Например, следующая CSS-декларация позволяет менять цвет фона страницы в зависимости от времени суток:
Эти выражения проприетарны для IE и не могут использоваться повсеместно.
Частым их применением была борьба с ошибками IE или эмуляция еще не поддерживаемых возможностей CSS 2.1, например min-width and max-width. Разработчики не только изо всех сил боролись с ошибками, но и создали новый движок, поддерживающий необходимые возможности изначально.
Вычисление выражений очень ресурсоемко; специалисты по web-производительности, такие как Стив Содерс, рекомендуют избегать их, чтоб у клиента всё быстрее работало.
Открывая контекст выполнения скриптов, CSS-выражения – возможный путь инъекции кода.
Ага. В целях обратной совместимости, CSS-выражения всё еще выполняются в режиме Странностей и в Строгом режиме IE7. Но начиная с IE8 Beta2 они игнорируются в Стандартном режиме IE8.
Благодаря новому движку IE8, большинство выражений, написанных, чтобы обойти ошибки и ограничения поддержки CSS 2.1 больше не понадобятся, всё и так будет работать правильно и стандартно.
Для более специфических целей, всё достижимо средствами стандартного JavaScript, что более совместимо с другими браузерами и не так бьет по производительности.
Прекращение поддержки выражений – возможности, обычно применяемой, чтобы исправить то, что разработчики сейчас исправляют сами – поможет сделать IE8 стандартнее, быстрее и безопаснее для сотен миллионов его будущих пользователей.
Что такое CSS-выражение?
Также известные как Динамические выражения, проприетарные CSS-выражения появились в IE5. Задолго до появления JavaScript-библиотек, таких как jQuery и Dojo, они позволили веб-разработчикам динамически привязывать скрипты к странице через CSS-селекторы. Например, следующая CSS-декларация позволяет менять цвет фона страницы в зависимости от времени суток:
div.title { background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" ); }
Почему им положен конец?
В целях соответствия стандартам.
Эти выражения проприетарны для IE и не могут использоваться повсеместно.
Частым их применением была борьба с ошибками IE или эмуляция еще не поддерживаемых возможностей CSS 2.1, например min-width and max-width. Разработчики не только изо всех сил боролись с ошибками, но и создали новый движок, поддерживающий необходимые возможности изначально.
Чтобы увеличить производительность.
Вычисление выражений очень ресурсоемко; специалисты по web-производительности, такие как Стив Содерс, рекомендуют избегать их, чтоб у клиента всё быстрее работало.
Чтобы уменьшить поверхность атаки браузера
Открывая контекст выполнения скриптов, CSS-выражения – возможный путь инъекции кода.
Доступны ли выражения по-прежнему в режимах IE7 и Странностей (Quirks)?
Ага. В целях обратной совместимости, CSS-выражения всё еще выполняются в режиме Странностей и в Строгом режиме IE7. Но начиная с IE8 Beta2 они игнорируются в Стандартном режиме IE8.
Страницы на моём сайте используют CSS-выражения. Как это меня коснется?
Благодаря новому движку IE8, большинство выражений, написанных, чтобы обойти ошибки и ограничения поддержки CSS 2.1 больше не понадобятся, всё и так будет работать правильно и стандартно.
Для более специфических целей, всё достижимо средствами стандартного JavaScript, что более совместимо с другими браузерами и не так бьет по производительности.
Прекращение поддержки выражений – возможности, обычно применяемой, чтобы исправить то, что разработчики сейчас исправляют сами – поможет сделать IE8 стандартнее, быстрее и безопаснее для сотен миллионов его будущих пользователей.