6

我正在尝试更改下拉菜单元素的颜色。下拉列表由以下 HTML 组成:

<div class="btn-group">
    <a class="btn">Confirm</a>
    <a href="#" id="drop_thought" role="button" class="dropdown-toggle btn white-text" data-toggle="dropdown">v</a>
    <ul class="dropdown-menu white-text" id="tools_drop" role="menu" aria- labelledby="drop_thought">
        <li><a class="btn btn-success white-text">Okay</a></li>
        <li><a class="btn btn-warning">Unload</a></li>
        <li><a class="btn btn-danger">Quarantine</a></li>
        <li class="divider"></li>
        <li><a class="btn btn-primary">Permanent</a></li>
    </ul>
</div>

为了便于阅读,我删除了 ID。

我做了一个如下的 CSS 类:

.white-text {
    color: #FFFFFF; !important
}

我以为!important会自动将 Okay 变成白色,但它仍然是黑色的。我在 Chrome 的开发者控制台下查看了封闭的<li><a>...</a></li>元素,white-text它似乎.dropdown-menu a是它继承的类。出于某种原因, mywhite-text被忽略并被删除。

使用以下 CSS,我能够将文本颜色更改为白色,但我在另一个地方使用下拉菜单,所以我不能使用它:

.dropdown-menu a{
    color: #FFFFFF; !important
}

这是根据 Chrome 的继承链:

.dropdown-menu li > a:hover, .dropdown-menu li > a:focus, .dropdown-submenu:hover > a - #ffffff
.btn-success:hover, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] - #ffffff
.btn:hover - #333333
.btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] - #333333 .dropdown-menu a - #333333
a:hover - #005580
.white-text - #FFFFFF
.btn-success - #ffffff
.btn - #333333
a - #0088cc
.white-text - #FFFFFF
body - #333333
4

1 回答 1

13

分号在!important 之后,否则它不会包含在该属性中(CSS 不处理空格/返回)。

正确使用:

.dropdown-menu a{
    color: #FFFFFF !important;
}

http://css-tricks.com/when-using-important-is-the-right-choice/

于 2013-01-18T18:42:47.707 回答