Чтобы сделать это по мере необходимости, переместите состояние :hover
из a
в li
:
nav .navbar-nav li:hover > a {
background-color: grey;
}
Также обратите внимание, что по возможности следует избегать использования !important
. Лучше переопределить существующие правила стиля, сделав ваши селекторы более точными c. Вот полный рабочий пример:
body {
background-color: #091230;
}
.dropdown:hover .dropdown-menu {
display: block;
}
.navbar-nav>li {
margin-left: 10px;
margin-right: 10px;
}
#container nav .navbar-nav li>a {
color: white;
border-radius: 5px 5px 0px 0px;
}
nav .navbar-nav li:hover>a {
background-color: grey;
}
#container .navbar .dropdown-menu {
background-color: grey;
margin: 0;
border-radius: 0px 5px 5px 5px;
border-top-color: #343A40;
}
#container .dropdown div {
border-color: grey;
}
#container .navbar .dropdown-menu a {
color: white;
}
#container .dropdown-item:hover {
background-color: #343A40;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
<div id="container">
<nav class="navbar navbar-expand navbar-dark bg-dark">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Item 1</a>
<a class="dropdown-item" href="#">Item 2</a>
<a class="dropdown-item" href="#">Item 3</a>
<a class="dropdown-item" href="#">Item 4</a>
</div>
</li>
</ul>
</nav>
</div>