首页 > web前端 > css教程 > 正文

如何使用 Greasemonkey/Tampermonkey 覆盖类 CSS?

Barbara Streisand
发布: 2024-11-03 10:47:29
原创
997 人浏览过

How to Overwrite a Class CSS with Greasemonkey/Tampermonkey?

如何使用 Greasemonkey/Tampermonkey 覆盖 Class CSS

在此场景中,目标是修改 body 元素的背景图像,特别是当它包含类“banner_url”时,使用 Greasemonkey 或 Tampermonkey 脚本。实现方法如下:

使用 CSS Cascade

您可以使用 CSS Cascade 来覆盖现有的 CSS 规则,而不是直接修改元素的样式。为此,请使用 GM_addStyle() 将样式表添加到页面。

// ==UserScript==
// @name     _Override banner_url styles
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_addStyle
// @run-at   document-start
// ==/UserScript==

GM_addStyle(`
    .banner_url {
        background: url('http://www.pxleyes.com/images/contests/kiwis/fullsize/sourceimage.jpg') no-repeat center center fixed !important;
        -webkit-background-size: cover !important;
        -moz-background-size: cover !important;
        -o-background-size: cover !important;
        background-size: cover !important;
    }
`);
登录后复制

在此脚本中,已添加“文档开始”元数据,以最大程度地减少在以下情况下可能发生的“闪烁”:初始渲染后样式会更改。

Greasemonkey 4 的替代方法

如果您使用的是 Greasemonkey 4,它已删除 GM_addStyle(),您可以使用以下垫片解决这个问题:

function GM_addStyle (cssStr) {
    var D = document;
    var newNode = D.createElement('style');
    newNode.textContent = cssStr;

    var targ = D.getElementsByTagName('head')[0] || D.body || D.documentElement;
    targ.appendChild(newNode);
}
登录后复制

使用 Stylus 进行纯 CSS 操作

除了 Greasemonkey 和 Tampermonkey 之外,您还可以考虑使用 Stylus 扩展,它提供了更好的选择用于纯 CSS 操作。这允许您直接修改 CSS 规则,使其成为此特定任务的更合适的选择。

以上是如何使用 Greasemonkey/Tampermonkey 覆盖类 CSS?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板