2013-05-01 77 views
1

我刮这个网站消息:http://www.nu.nl/摆脱的背景属性

如果打开控制台,然后输入:

$('*').css('background', 'none'); 

你会看到被删除的所有背景属性,除了一个是第一篇文章中的“蓝色”乡绅。当我追踪原始的CSS时,我发现它已经赋予它重要的声明。我不知道这是否会造成它的持久性。根据Jquery和Javascript或CSS,我可以尝试摆脱那种蓝色背景?

请注意我不想定位元素本身,而是继续使用全部(*)选择器或一些Javascript等效。

+0

也许使用'false'而不是''none''帮助? – rednaw 2013-05-01 14:43:29

+2

使用此线程。它被测试和确认[1] [1]:http://stackoverflow.com/questions/4384213/remove-background-color-images-for-all-elements-with-jquery – 2013-05-01 14:44:04

+0

@Borsel没有提供的答案将工作,你可以测试它,新闻网站有jquery安装 – Youss 2013-05-01 14:47:01

回答

1

jQuery无法识别css定义中的!important属性。你只需要一个更具体的分层选择器。只需创建一个新类,然后使用addClass。

$('head').append('<style type="text/css">html #page .noBG{ background:none !important; }</style>'); 

然后,只需将该类添加到一切。

$('*').addClass('noBG'); 

编辑基于下面的评论

,你可以尝试

$('head').append('<style type="text/css">html body#noBG *{ background:none !important; }</style>'); 

然后将ID添加到身体

$('body').prop('id', 'noBG'); 

这是一个非常具体的选择。一些规则可能仍然会通过这个规则,并且您将不得不根据场景尝试不同的变体。

+0

非常感谢你:) – Youss 2013-05-01 15:01:48

+0

嗨我试过'html body .noBG',但它不工作,任何想法,为什么这是? – Youss 2013-05-01 15:03:49

+0

@Youss,因为它没有足够的选择器。你可能需要使用多个'html #page .noBG,html body .noBG,html #selector .noBG'。您需要了解CSS选择器的特殊性。 – Ohgodwhy 2013-05-01 15:05:26