Pull to refresh

IE8 не будет поддерживать CSS expressions

Reading time2 min
Views1.9K
Критерии проектирования — соответствие стандартам, производительность, надежность и безопасность — ограничивают как новые, так и существующие возможности браузера. В результате CSS-выражения (CSS expressions) больше не поддерживаются в стандартном режиме IE8. Это изменение уже анонсировалось в блоге IE, но разработчики решили поделиться дополнительными подробностями о своем решении. Они ответили на вопросы о том, что это было, почему от этого отказались и чем это нам грозит.

Что такое 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 стандартнее, быстрее и безопаснее для сотен миллионов его будущих пользователей.
Tags:
Hubs:
+40
Comments98

Articles

Change theme settings