【问题标题】:CSS properties definition overwrites Knockout js css bindingCSS 属性定义覆盖 Knockout js css 绑定
【发布时间】:2013-07-10 19:51:32
【问题描述】:

我注意到,如果您在标记中定义 <style> 标记,如下所示:

 tr:nth-child(even) {background-color:#F4F4F4;}

然后您尝试使用敲除应用 css 绑定(这会在您单击一行时设置背景颜色):

<tr data-bind="click: $parent.selectRow, css: {red:  $parent.seletedRow() == $data}">

第二个没有设置,因为我已经在&lt;style&gt; 标签中定义了背景色。

我需要用颜色标记偶数行,但是当您单击一行时,它的背景颜色必须由 css 类 red 替换。这是一个例子:

http://jsfiddle.net/q3Uuz/1/ 尝试单击第二行,您会注意到 redclass 未应用。

如何做到这一点?

【问题讨论】:

    标签: html css knockout.js


    【解决方案1】:

    在这种情况下不需要使用!important;

    比您的 tr:nth-child(even) 更具体的选择器也可以解决您的问题

    所以你可以这样写:

    tr:nth-child(even) { background-color:#F4F4F4; }
    
    tr.red { background-color: red; }
    

    演示JSFiddle.

    您可以阅读更多关于selector's specificity calculated 的信息

    【讨论】:

      【解决方案2】:

      您可以在红色类中添加!importantbackground-color 样式:

      .red {
          background-color: red !important;
      }
      

      这是工作小提琴:http://jsfiddle.net/q3Uuz/2/

      【讨论】:

      • 不需要!important;,更具体的选择器也可以修复它,例如:tr.red { background-color: red; }
      • 每次使用!important,都会有一只小考拉在哭,因为这不再是级联样式表了。
      • 同意你们的观点,再也不会:)
      • @nemesv 请将此评论作为答案发表。
      猜你喜欢
      • 1970-01-01
      • 2021-11-12
      • 2017-03-24
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2013-07-30
      • 1970-01-01
      相关资源
      最近更新 更多