【问题标题】:CSS: alter hover color based on another styleCSS:根据另一种样式更改悬停颜色
【发布时间】:2018-03-15 18:44:50
【问题描述】:

情况:我们有一个角结构,它在 UL 中构建一系列 LI 项,设置为使用 css 来模拟下拉列表。

 <ul class="dropdown-menu" id="ddl_suppliersList">
      <li ng-click="clearSuppliersList()">
           <input type="checkbox" class="form-control input-sm" /><label>Unselect All</label>
      </li>
      <li ng-repeat="supplier in suppliers track by $index" ng-class="{highlightedRow: supplier.isSelected}" ng-click="supplierSelected($index)">
                                <input type="checkbox" class="form-control input-sm" /><label ng-class="{highlightedRow: supplier.isSelected}">{{supplier.supplierPreferredName}}</label>
      </li>
  </ul>

样式表:

.dropdown-menu > li > label {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > label:hover,
.dropdown-menu > li > label:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > li > input:checked ~ label,
.dropdown-menu > li > input:checked ~ label:hover,
.dropdown-menu > li > input:checked ~ label:focus,
.dropdown-menu > .active > label,
.dropdown-menu > .active > label:hover,
.dropdown-menu > .active > label:focus {
  color: #ffffff;
  text-decoration: none;
  outline: 0;
  background-color: #428bca;
}

(我认为这是相关的部分)

显示如下:

用户可以选择许多项目 - CSS 样式“highlightedRow”位于与“下拉菜单”样式不同的样式表中

“highlightedRow”的样式表

.highlightedRow {
  background-color: #0D82F5;
  color: white;
}

问题是,选择了第二家公司,但悬停样式完全隐藏了它。

这让用户感到困惑。

我相信一个解决方案是,如果已选择的选项的悬停颜色可以更改为其他颜色以指示下方的项目已被选中。但我不知道如何构建它。

我怀疑我可以像这样为 LI 项目添加另一种样式:

<input type="checkbox" class="form-control input-sm" /><label ng-class="{highlightedRow: supplier.isSelected; hoverAlt: supplier.isSelected}">{{supplier.supplierPreferredName}}</label>

但我无法准确确定该调用它的名称以及放置它的位置,以便它覆盖现有的悬停颜色。

想法?

【问题讨论】:

    标签: javascript jquery css angularjs


    【解决方案1】:

    只需将悬停事件添加到所选行

    添加这个:

    .highlightedRow:hover {
      background-color: #3c8ddd; /*Any color you want on the hover*/
    }
    

    【讨论】:

    • 听起来确实可行,但下拉列表的悬停仍然优先。如果我注释掉上面的“.dropdown-menu > li > label:hover”行,新的悬停颜色就会出现。我尝试颠倒样式表在页面中呈现的顺序只是为了看看它是否有所作为 - 没有。
    • 如果您尝试的所有方法都没有帮助,一个快速的解决方案是使用background-color: #3c8ddd!important;。但请记住,这并不是最好的做法。
    • 宾果游戏!我认为有一个错字 - 进一步的研究表明应该是感叹号而不是冒号,但它正在工作。有关该工具的更多详细信息 - developeracademy.io/css-important-rule-use-correctly
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 2013-04-28
    • 2017-07-21
    • 2015-01-25
    • 1970-01-01
    相关资源
    最近更新 更多