当前位置: 首页 > 知识库问答 >
问题:

CSS和jQuery-如何强制2个规则协同工作

顾正初
2023-03-14

我有一个html表。我需要2条规则来起作用:

>

  • 鼠标在表格行上应更改背景颜色。

    1列中的单元格应根据单元格内容使用不同的颜色,例如-如果cell=“green”中的值,则背景应为绿色。

    对于第一条规则,我在CSS中做了规则:

    tr:hover
    {
        background: brown;
    }
    

    对于第二个--我附加了jQuery2.0.3并添加了js函数,它为TD创建类“color”:

    $(document).ready(function(){
    
        $('td.color').each(function(){  
        var x = $(this).text().trim();
        if ( x === "Green" ) $(this).css({background: 'green'});
        else if (x === "Yellow") $(this).css({background: 'yellow'}) ;
        else if (x === "Red") $(this).css({background: 'red'}) ;
        });
    
     });
    

    表的html为:

    <table>
        <tr  class='tr'>
            <td class='td'>Name1</td>
            <td class='td'>Green</td>
            <td class='color'>Green</td>
        </tr>
         <tr  class='tr'> 
             <td class='td'>Name2</td>
             <td class='td'>Yellow</td>
             <td class='color'>Yellow</td>
        </tr>
        <tr class='tr'>
            <td class='td'>Name3</td>
            <td class='td'>Red</td>
            <td class='color'>Red</td>
        </tr>
    </table> 
    

    (类颜色仅分配给最后一列)

    您可以在这里看到具有结果的示例:http://jsfidle.net/bm5aw/7/

    因此,最后一列中的背景颜色取决于文本值,而表格行在事件上改变鼠标的背景颜色。但是最后一列在鼠标上没有改变颜色,我理解这是因为js脚本中的“td”规则覆盖了CSS中的“tr”规则。如果同时声明了“TD”规则,如何强制“TR”规则工作?

  • 共有1个答案

    段恩
    2023-03-14

    在规则中添加!重要的

    tr:hover, tr:hover td {
        background: brown !important;
    }
    

    演示:小提琴

    问题是您将内联样式应用于最后一个td元素,该元素的样式优先于tr元素的样式。

    另一个选项是使用类选择器应用颜色

    $(document).ready(function () {
        $('td.color').addClass(function(){
            return $.trim($(this).text()).toLowerCase()
        })
    });
    

    然后

    tr:hover, tr:hover td {
        background: brown;
    }
    td.green {
        background: green;
    }
    td.yellow {
        background: yellow;
    }
    td.red {
        background: red;
    }
    

    演示:小提琴

     类似资料:
    • 问题内容: 所以,这就是我正在做的: 我有一张桌子,上面放着所有的桌子。 但是在一个特殊的场合,我希望一个特定的对象在各个方向都有,我将其设置为。 显然,我将CSS样式依次放在一个外部文件中。 但是渲染的CSS仅具有,并且似乎已被覆盖! 请说明: 这是怎么发生的以及为什么发生? 我应该如何安排这些规则来解决我的问题(除了内联样式)? 编辑:我在表中删除之前。我从来没有使用过它,我只是在这里提到它以

    • 问题内容: 如何将其写成一行? 用id和class选择html标签的方法是什么? 问题答案: 您所要做的就是用逗号分隔它们,例如

    • 问题内容: 谁能帮助我,我有两个问题。 我想做的是使用jQuery动态更改CSS类规则。 在上面的示例中,我有一个现在使用jQuery 命名的类,我想仅通过不添加css内联来更改字体大小,而不更改颜色。 我要创建更改并将其保存到文件,请记住,将存在完整的样式表或没有类名将保存在文件中。 我该怎么做才是最简单,更好的方法? 谢谢! 问题答案: 据我所知,没有jQuery的方法可以做到这一点。可能有一

    • 问题内容: 我想要双向JSON到Java的序列化 我正在成功使用Java到JSON到jQuery的路径…()例如 在JQuery中,我使用 这很好用(例如,感谢所有回答者,注释已经可以使用了) 但是,我该如何做反向路径:是否已使用RequestBody将JSON序列化回Java对象? 无论我尝试什么,我都无法像这样工作: 我已经正确配置了Jackson(它会在出局时序列化),并且我将MVC设置为驱

    • 2. 隐含规则和模式规则 上一节的Makefile写得中规中矩,比较繁琐,是为了讲清楚基本概念,其实Makefile有很多灵活的写法,可以写得更简洁,同时减少出错的可能。本节我们来看看这样一个例子还有哪些改进的余地。 一个目标依赖的所有条件不一定非得写在一条规则中,也可以拆开写,例如: main.o: main.h stack.h maze.h main.o: main.c gcc -c ma

    • 主要内容:1、常规规则,2、嵌套规则在 CSS 中包含两种语法规则: 普通规则:由选择器、属性和值构成,在之前的学习中我们主要使用的就是这种规则; @规则:以开头后面跟随一个关键字的形式构成,也被称为“AT规则”,根据使用方法的不同又可以分为“常规规则”与“嵌套规则”两种。 本节我们主要来介绍一下 CSS 中的 @ 规则。 1、常规规则 所谓“常规规则”指的是语法类似下面的规则: @[KEYWORD] (RULE); 1) @cha