CSS expression
— метод записи выражений JavaScript непосредственно в свойствах CSS для браузеров Internet Explorer. Все остальные браузеры игнорируют expression.
Можно сказать, что это неплохой подарок дизайнерам, поскольку множетсво IE багов может быть исправлено при помощи expression
. Но при этом то, что вы напишите в expression нужно как-то записать и для других браузеров.
Опытным путём было обнаружено, что конструкции в CSS вида:
<style> .class {behavior:expression((function(){})(this))} </style>
в браузерах на движке WebKit (Chrome, Safari) вызывают ошибки. Стили после данной конструкции браузеры перестают видеть и применять к элементам. Происходит это по вине фигурных скобок «{» и «}». Причём если убрать «{«, то баг исчезает, а если «}» — останется.
Чтобы избежать недоразумений, выносите подобные конструкции в конец CSS — файла.
Источник: https://www.kobzarev.com/programming/css-expression-in-webkit-causes-errors/