如何在 Bootstrap 4 中覆盖导航药丸下拉样式?



我正在尝试更改菜单链接的颜色,修改我的CSS。作为菜单 a 选择nav-pills.这是我的代码。

.HTML

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg">
<div class="container">
<ul class="mr-auto nav nav-pills">
<li class="nav-item dropdown">
<a class="nav-link" href="#" data-toggle="dropdown">My dropdown</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">l1</a>
<a class="dropdown-item" href="#">l2</a>
<a class="dropdown-item" href="#">l3</a>
</div>
</li>
</ul>
</div>
</nav>
</body>
</html>

.CSS:

.nav-pills > li > a {
background-color: #888;
color: white;
}
.nav-pills > li > a:hover,
.nav-pills > li > a:focus,
.nav-pills > li > a:active {
background-color: #123 !important;
color: #085;
}

菜单药丸看起来很好,直到我点击它。悬停时,它的表现也很好。但是当我单击它时,文本颜色变为白色。当我将光标放在下拉菜单中的链接上时,药丸会变成标准的蓝色,而不是保持深蓝色。我该如何解决它?

我正在使用 Bootstrap 4。

看看 CSS :active selector。

https://www.w3schools.com/cssref/sel_active.asp

.nav-pills > li > a:hover,
.nav-pills > li > a:focus,
.nav-pills > li > a:active {
background-color: #123 !important;
color: #085;
}

在特定情况下,您可以通过添加以下内容来解决问题:

.show > .nav-link {
color: #085 !important;
}
.nav-pills > li.show > a:focus,
.nav-pills > li.show > a:not(:focus) {
background-color: #123 !important;
color: #085;
}
.dropdown-item:active,
.nav-link:active {
background-color: #123 !important;
}

这是更新的小提琴。

最新更新