【问题标题】:Getting rid of background properties摆脱背景属性
【发布时间】:2013-05-01 14:40:00
【问题描述】:

我正在抓取这个新闻网站:http://www.nu.nl/

如果你打开控制台并输入:

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

您将看到所有背景属性都被删除,除了第一篇文章中的“蓝色”乡绅。当我跟踪原始 CSS 时,我看到它分配了 !important 声明。我不知道这是否导致它的持久性。在 Jquery 和 Javascript 或 CSS 方面,我可以尝试什么来摆脱蓝色背景?

请注意,我不想以元素本身为目标,而是继续使用 all (*) 选择器或一些 Javascript 等价物。

【问题讨论】:

  • 也许使用false 而不是'none' 有帮助吗?
  • 使用这个线程。它经过测试并确认 [Stackoverflow][1] [1]: stackoverflow.com/questions/4384213/…
  • @Borsel 提供的答案都不起作用,你可以测试一下,新闻网站安装了 Jquery

标签: javascript jquery css


【解决方案1】:

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

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

然后将该类添加到所有内容中。

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

编辑

基于下面的cmets,你可以试试

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

然后将ID添加到body中

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

这是一个非常具体的选择器。有些规则可能仍然通过,您必须根据场景尝试不同的变化。

【讨论】:

  • 您好,我用html body .noBG 试过了,但它不起作用,知道为什么吗?
  • @Youss 因为它的选择器不够具体。您可能需要使用多个,例如html #page .noBG, html body .noBG, html #selector .noBG。您需要了解 CSS 选择器的特殊性。
  • 关键是我不能用我的脚本来定位一个特定的元素。你确定我不能在不定位某些元素的情况下将新类附加到 (*) 的样式吗?
  • @Youss 是的,我是 100% 肯定的。您不能用html body .noBG 覆盖#salous .container .element a.noBG,因为选择器的特异性将高于上述选择器。你到底在用这个脚本做什么?根据功能和预期目的,可能有更好的方法。
  • @Youss 你可以尝试一件事......见上文
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多