Проблема в том, что когда я нажимаю раскрывающийся список, текст становится черным, поэтому мне нужно изменить его на белый. когда я удалю цвет #tab, я изменю его на #9e9e9d.
# вкладка { черный цвет }
#tab:hover {
color: white;
}
<div class = "collapse navbar-collapse" id = "myNavbar">
<ul class = "nav navbar-nav">
<li><a href = "index.html" id = "tab">HOME</a></li>
<li><a href = "Beverages.html" id = "tab">MENU</a></li>
<li class = "dropdown">
<a class = "dropdown-toggle" data-toggle = "dropdown" href = "#" id = "tab">PROMOTION <span class = "caret"></span></a>
<ul class = "dropdown-menu">
<li><a href = "#">Gift Cards</a></li>
<li><a href = "#">Christmas Bundle</a></li>
</ul>
</li>
<li><a href = "About.html" id = "tab">ABOUT</a></li>
<li><a href = "Faq.html" id = "tab">FAQ</a></li>
</ul>
</div>
Я дал решение на jquery
, так как вы упомянули bootstrap
. Решение использует метод toggleClass()
.
Было ли это необходимо?
$('.dropdown').on('click', function() {
$(this).toggleClass('a_color_active');
$('.dropdown-menu').toggleClass('ul_color_active');
});
.dropdown {
background-color: pink;
}
.dropdown-menu {
display: none;
}
.dropdown a,
.dropdown-menu a {
color: unset;
}
.dropdown.a_color_active {
background-color: black;
color: white;
}
.dropdown-menu.ul_color_active {
display: block;
background-color: black;
color: white;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li class = "dropdown">
<a class = "dropdown-toggle" data-toggle = "dropdown" href = "#" id = "tab">PROMOTION <span class = "caret"></span></a>
<ul class = "dropdown-menu">
<li><a href = "#">Gift Cards</a></li>
<li><a href = "#">Christmas Bundle</a></li>
</ul>
</li>
второй:
$('.dropdown').on('click', function() {
$(this).toggleClass('a_color_active');
$('.dropdown-menu').toggleClass('ul_color_active');
});
.nav.navbar-nav a {
color: black;
}
.nav.navbar-nav a:hover {
color: white;
}
.dropdown-menu {
display: none;
}
.nav.navbar-nav a,
.dropdown-menu a {
color: unset;
}
.dropdown.a_color_active {
background-color: black;
color: white;
}
.dropdown-menu.ul_color_active {
display: block;
background-color: black;
color: white;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "collapse navbar-collapse" id = "myNavbar">
<ul class = "nav navbar-nav">
<li><a href = "index.html" id = "tab">HOME</a></li>
<li><a href = "Beverages.html" id = "tab">MENU</a></li>
<li class = "dropdown">
<a class = "dropdown-toggle" data-toggle = "dropdown" href = "#" id = "tab">PROMOTION <span class = "caret"></span></a>
<ul class = "dropdown-menu">
<li><a href = "#">Gift Cards</a></li>
<li><a href = "#">Christmas Bundle</a></li>
</ul>
</li>
<li><a href = "About.html" id = "tab">ABOUT</a></li>
<li><a href = "Faq.html" id = "tab">FAQ</a></li>
</ul>
</div>
попробуйте сделать красный цвет фона неактивным и активным в раскрывающемся списке
Извини чувак. Я очень хочу вам помочь, но не могу понять, какого результата вы хотите.
подождите, я добавлю скриншот
пожалуйста, проверь еще раз мой пост, братан
см. второе решение (второй фрагмент)
рад помочь, бро :)
Добавлю в комментарий.. Обратите внимание, что все теги a
используют один идентификатор tab
- это неверно. Идентификатор должен быть уникальным для каждого тега. Я изменил css. Был #tab
, а теперь .nav.navbar-nav a
.
он не решил, что черный цвет на фоне активного раскрывающегося списка все еще черный, и изменился только цвет <li>. попробуйте просмотреть мой пример скриншота, чтобы узнать, что я говорю за спасибо.