如何覆盖元素样式以使其无法更改?

时间:2016-02-02 22:02:16

标签: javascript css css-position

我正在编写Chrome扩展程序,我需要让所有元素的位置相对。我试图将 public async Task<IEnumerable<Product>> GetProductByYearIdAsync(int yearId) { return await ApplicationsContext.Product.Where(product=> product.YearId == yearId); } 添加到position: relative !important;的样式。但是当我滚动页面时,页面中的一些JS会将body子元素的样式更改为body,并且它会变得固定。我不希望这种情况发生,所以,有没有办法让所有元素相对一劳永逸?

我在此页面上测试过此行为:http://sandesh.epapr.in/709519/Ahmedabad/02-02-2016#dual/4/3,我希望页眉和页脚不固定,但没有运气。

4 个答案:

答案 0 :(得分:4)

你不能,有人总是可以更具体地改变风格或使用JavaScript。

答案 1 :(得分:1)

您有以下顺序,同时会考虑样式表 / 样式规则

  1. 声明标记为!important
  2. 作者样式表中的声明(由网站提供)

      

    特异性=连接&amp; b&amp; c,具有以下顺序和重量:
      a = 100 *(选择器中的ID属性数)
      b = 10 *(选择器中的类属性(或伪类)的数量)
      c = 1 *(选择器中标签名称(或伪元素)的数量)

    • 更高的特异性(第一)

      • 主样式表中的规则
        如果具有相同的特异性:
          样式表/文件中的
        • 唐纳存在
        • 样式表/文档中的
        • 上层存在
      • 导入的样式表中的规则
        如果具有相同的特异性:
          样式表/文件中的
        • 唐纳存在
        • 样式表/文档中的
        • 上层存在
    • 较低的特异性(下一个)

      • 主样式表中的规则
        如果具有相同的特异性:
          样式表/文件中的
        • 唐纳存在
        • 样式表/文档中的
        • 上层存在
      • 导入的样式表中的规则
        如果具有相同的特异性:
          样式表/文件中的
        • 唐纳存在
        • 样式表/文档中的
        • 上层存在
  3. user style sheet中的声明 [如第2部分]

  4. 用户代理样式表中的声明(由浏览器提供)
    [如第2部分]

答案 2 :(得分:0)

您可以取消绑定附加到文档滚动的所有jQuery。这会阻止网站的JavaScript改变CSS开始。

$(document).unbind('scroll');

答案 3 :(得分:0)

您可以使用chrome检查窗口查看页面上正在执行的javascript文件以及样式的更改,一旦确定了正在执行此操作的功能,您就可以编辑此功能,以便进行此更改。