Вы можете объявить JavaScript-выражения и функции в CSS с помощью функции IE expression()
. Другой способ - использовать функцию url()
.
Например:
// Expression()
selector { width: expression((document.body.clientWidth > 1024)? "1200px" : "960px"); }
// URL()
selector { background: url("javascript: alert('XSS')"); }
Выражения в IE {6,7} добавляют некоторую дополнительную логику, которая иногда используется, чтобы скрыть перекрестную совместимость для IE; однако, использование expression()
вообще не рекомендуется.
Как ответил cx42net, CSS обрабатывает представление, тогда как JavaScript обрабатывает поведение страницы. Использование JavaScript в CSS не является распространенным явлением и обычно проявляется как атака XSS, как показано в примере url()
выше.
Возможно использовать JavaScript в более старых версиях браузеров, но я думаю, что они постепенно удаляют его поддержку, поскольку IE8 + больше не поддерживает expression()
. Тем не менее, я вообще не рекомендую использовать JavaScript в CSS, особенно если вы ожидаете, что ваш веб-сайт будет Forward Compatible .