Вы не можете установить! Важный, как это с jQuery, но с javascript вы можете сделать:
document.getElementById('el').style.position = "static !important";
Но, похоже, это работает только в некоторых браузерах, а именно в Webkit, и, возможно, поэтому ваш jQuery css также работает только в Chrome / Safari, поскольку они, вероятно, сделали некоторые обновления в библиотеке.
На предыдущих версиях jQuery, функция css (), когда содержала! Важный, насколько я знаю, абсолютно ничего не делала.
Единственный кросс-браузерный способ сделать это с помощью jQuery - cssText, что-то вроде:
$('#el').css('cssText', 'position: static !important');
Но имейте в виду, что cssText заменяет весь встроенный тег стиля, и все остальные стили, установленные таким образом, должны быть снова включены в cssText.
Лучший способ сделать это - использовать разные классы, например:
CSS:
.static_element {position: static!important;}
JQuery:
$("#el").addClass('static_element');
и так как он использует! Важный, он переопределит любую позицию, установленную для других классов / идентификаторов, пока они не установлены с! Важным, тогда они будут следовать обычному порядку правил CSS, и последнее добавленное правило будет прилипнет.
Хорошее правило - стараться вообще избегать использования! Important, если только нет абсолютно другого доступного решения, и в вашем примере использование двух классов с одним установленным на фиксированный, а другим с статическим, будет работать нормально, если для по какой-то странной причине просто установка позиции с помощью $ .css () без использования! Important не работает.