2012-02-15 3 views
5

$('body').css('background-color', 'blue'); не работает для меня.Переопределение фона тела с JQuery?

Похоже, что существуют другие согласованные правила CSS, которые преобладают на странице.

Есть ли способ заставить этот CSS работать? Это также не работает, когда я пытаюсь выполнить фоновое изображение ...

С помощью Google Explorer Google Chrome есть три разных правила CSS для тела.

Я не понимаю, как это работает и почему это выше JQuery не работает.

Подайте мне знания пожалуйста!

[EDIT]

Ответ идеально подходит для подмены CSS! Благодаря

Примечание: Очистить кэш и просмотра данных с начала времени, это помогает;)

+0

'[PHP]' удалить метку ... –

+0

Это может зависеть от того, когда ваши '$ ('тело') CSS()' правило имеет место. - это работать после того, как страница уже загружена? – summea

+0

Работает для меня в FF, Chrome и IE: http://jsbin.com/ubenar –

ответ

13

Если вы хотите, чтобы этот стиль будет применяться в случае, если возникают конфликты, то используют !important после стиля.

$(function(){ 
    $('body').css('background-color', 'blue !important'); 
}); 
+0

Это действительно так. –

+0

Не соответствует ли css встроенному стилю, так ли это не сильнее, чем любое другое правило csse, даже без важного? – gdoron

+2

Если у вас есть '! Important', применяемый в стилях класса css, тогда встроенный стиль также не поможет. Чтобы переопределить это, нам нужно также указать '! Important' внутри встроенных стилей. – ShankarSangoli

2

Использование !important выдвинет приоритет этого стиля:

$('body').css('background-color', 'blue !important'); 

Однако это могло бы стоить вывешивание больше исходного кода, так как часто лучшее решение, чем использование !important

+0

@ T.J.Crowder - если только '! Important' был установлен на связанную таблицу стилей. Я уверен, что важно, чтобы таблица стилей имела более высокий приоритет, чем встроенный стиль! Важно – Curt

+0

'@ Curt': Ugh. Мне жаль говорить, что вы, кажется, верны в этом: http: // jsbin.com/ubenar/2 (я не могу сразу найти этот оператор в спецификации CSS, но когда все пользователи Chrome, Firefox и IE согласны с тем, что мне просто не хватает его.) Еще одна причина, чтобы избежать '! important', чума. :-) –

+0

@ T.J.Crowder Это то, с чем мы можем согласиться! – Curt

1

Попробуйте выполнить его после загрузки страницы:

$(window).load(function() { 
    $('body').css('background', 'blue'); 
}); 
+0

Ничего не изменит. – gdoron

0

В качестве быстрого решения, возможно, попробуйте следующее:

$('body').css('background', 'blue !important'); 

Но вы должны увидеть, где конфликтующие исходит от и исправить ее.

0
<script type="text/javascript"> 

    $(document).ready(function(){ 
      $("body").css("background-color","blue!important"); 
    }); 

</script> 
Смежные вопросы