如何仅在包含特定值的所有元素中删除CSS属性

时间:2018-05-26 01:32:12

标签: javascript css

我是一个不喜欢计算机上的白色背景的用户,这就是我使用全局黑暗CSS样式浏览网页的原因。

在我看来,所有这些全局黑暗CSS样式的主要问题是背景图像线性渐变和径向渐变功能。这些函数为Web中的许多元素创建“背景图像”。这些背景通常是白色的,为全局黑暗CSS样式带来了问题,因为我们不想删除所有背景图像,因为这会破坏许多图标和其他东西。

我认为补充全局黑暗css样式的一个非常好的选择是创建一个执行以下操作的脚本:

  1. 查看页面中的每个元素。
  2. 查看属性背景图片。
  3. 如果元素定义了background-image属性,请检查它是否包含线性渐变,-moz-linear-gradient,径向渐变或-moz-radial-gradient等函数。
  4. 如果是这种情况,则为该对象做:“background-image:none!important”。
  5. 我很喜欢编码。我尝试了以下但没有成功:

    function removeGradients() {
    
            var x = document.querySelectorAll("*");
            var i;
            for (i = 0; i < x.length; i++) {
                if(x[i].indexOf('linear-gradient') == 0) {
                x[i].style.backgroundImage = "none";
                }
            }
    } 
    

    我一直在阅读有关querySelectorAll函数的信息,它返回一个NodeList。也许我可以在NodeList中搜索每个元素的值线性渐变?也许我必须使用另一个功能?

    感谢您的关注。 问候。

0 个答案:

没有答案