Я не совсем уверен, что вы ищете, но я предполагаю, что у вас есть встроенный стиль в теге div, и через CSS вы пытаетесь переопределить это.
Единственная опция здесь - это флаг !important
в вашем файле css. Таким образом, в вашем файле CSS у вас будет это:
.mozgradient {background-image(whatever) !important}
UPDATE:
Теперь я вижу, что вы пытаетесь сделать это через jQuery. Попробуйте это:
var divWidth = $yourDiv.css('width');
$yourDiv.removeAttr('style').css('width', divWidth);
Хотя обратите внимание, что это будет работать только при условии, что width является единственным встроенным стилем CSS, который вы хотите сохранить. Если бы там мог быть какой-либо встроенный стиль, вам пришлось бы прибегнуть к описанному выше варианту CSS, используя! Важное или jQuery, захватить весь атрибут стиля и испортить REGEX, чтобы специально проанализировать любые стили фонового изображения.
ОБНОВЛЕНИЕ II:
ОК, основываясь на комментариях, это становится сложно. Проблема в том, что может быть любое количество встроенных стилей, применяемых через атрибут style
(тьфу! Я чувствую вашу боль!), И мы хотим только очистить background-image
, чтобы мы могли позволить внешнему CSS обрабатывать его .
Вот еще один вариант:
// create a div and attach the class to it
$testDiv = $('<div>').class('mozgradient').css('display','none');
// stick it in the DOM
$('body').append($testDiv);
// now cache any background image information
var bgndImg = $testDiv.css('background-image');
// get rid of the test div you want now that we have the info we need
$testDiv.destroy();
// now that we have the background-image information
// from the external CSS file, we can re-apply it
// to any other element on the page with that class
// name to over-ride the inline style
$('.mozgradient').css('background-image',bgndImg);
Неуклюжий, но я думаю, что это сработает.