Google chrome extension 如何使用内容脚本有效地覆盖CSS?

Google chrome extension 如何使用内容脚本有效地覆盖CSS?,google-chrome-extension,Google Chrome Extension,我的问题是,我想覆盖一个网站的风格。问题是,有一种方法可以做到这一点,使用!重要的句子,如中所示 然而,在我的文件中有成千上万的CSS指令,有没有更快速/有效的方法来实现这一点,即不放入!重要信息在每一行上?可能会更快地将原始CSS中您不希望在注入样式表中覆盖的所有样式包括在内?如果是这样,您可以使用内容脚本/代码注入或阻止浏览器请求CSS文件从页面中删除原始样式表 您还可以编写一个小脚本,它执行一些正则表达式魔术并添加!重要信息到给定CSS文件的每一行。我发现最简单、最有效的方法是使用非常特定

我的问题是,我想覆盖一个网站的风格。问题是,有一种方法可以做到这一点,使用
!重要的
句子,如中所示


然而,在我的文件中有成千上万的CSS指令,有没有更快速/有效的方法来实现这一点,即不放入
!重要信息
在每一行上?

可能会更快地将原始CSS中您不希望在注入样式表中覆盖的所有样式包括在内?如果是这样,您可以使用内容脚本/代码注入或阻止浏览器请求CSS文件从页面中删除原始样式表


您还可以编写一个小脚本,它执行一些正则表达式魔术并添加
!重要信息
到给定CSS文件的每一行。

我发现最简单、最有效的方法是使用非常特定的id将要注入的html模板包装到一个div中

<div id="my-specific-id">
  // Your injected HTML template or section of the website you want to change
</div>
这里有一个这样的重置:

请注意,您可能不需要CSS重置中的所有内容,因此删除不相关的内容以减轻浏览器的负担。例如,我无法想象你真的想重置
figcaption

作为编写扩展的人,您应该非常关心您的扩展是否会破坏您向其中注入脚本的网站上的用户体验

我概述的方法将保证只有你特别关心的网站部分会被更改

您可以使用自己的模板(例如,您希望在不使用iframe的情况下向每个页面添加天气小部件)或页面的特定部分来实现这一点。例如,您可以将所有
元素包装在您定义的高度特定的id中

下面是一个使用Sass的例子,它来自我最近的一个项目

#specific-id-css-ultimate-reset {
html, button, input, div, p, img, form {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

@import "modules/all";
@import "components/all";
@import "popups/all";
}

<div id="my-superspecific-html-template-wrapper">
  <HTML TEMPLATE>
</div>
#特定id css最终重置{
html、按钮、输入、div、p、img、表单{
保证金:0;
填充:0;
边界:0;
大纲:0;
字体大小:100%;
垂直对齐:基线;
背景:透明;
}
@导入“模块/全部”;
@导入“组件/全部”;
@导入“弹出窗口/全部”;
}
#specific-id-css-ultimate-reset {
html, button, input, div, p, img, form {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

@import "modules/all";
@import "components/all";
@import "popups/all";
}

<div id="my-superspecific-html-template-wrapper">
  <HTML TEMPLATE>
</div>