#html #css #drop-down-menu
#HTML #css #выпадающее меню
Вопрос:
У меня есть выпадающее меню CSS, работающее следующим образом:
<ul>
<li><a href="#">Link 1</a>
<ul>
<li><a href="#">Monkey 1</a></li>
<li><a href="#">Monkey 2</a></li>
<li><a href="#">Monkey 3</a></li>
</ul>
</li>
<li><a href="#">Link 2</a>
<ul>
<li><a href="#">Monkey 1</a></li>
<li><a href="#">Monkey 2</a></li>
<li><a href="#">Monkey 3</a></li>
</ul>
</li>
<li>
<a href="#">Link 3</a>
<ul>
<li><a href="#">Monkey 1</a></li>
<li><a href="#">Monkey 2</a></li>
<li><a href="#">Monkey 3</a></li>
</ul>
</li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
<li><a href="#">Link 6</a></li>
</ul>
и CSS:
ul{
padding: 0;
list-style: none;
}
ul li{
float: left;
width: 100px;
text-align: center;
}
ul li a{
display: block;
padding: 5px 10px;
color: #fff;
text-decoration: none;
}
ul li a:hover{
color: #87a0b4;
background: #fff;
}
ul li ul{
display: none;
}
ul li:hover ul{
display: block;
position: absolute;
width: 100px;
z-index: 100; /* display the dropdown */
}
Это работает отлично, однако я хочу что-то другое. Я хочу, чтобы выпадающее меню имело разные цвета фона и наведения курсора мыши. также я хочу, чтобы выпадающее меню было смещено от того, из которого оно появляется. Как получается, что я собираюсь это сделать?
Ответ №1:
Вы должны указать, к каким элементам хотите применить изменения стиля.
Здесь выбирается первое подменю:
ul > li:first-child > ul > li a:hover{
color: #87a0b4;
background: yellow;
}
При этом выбирается второе подменю:
ul > li:nth-child(2) > ul > li a:hover{
color: #87a0b4;
background: blue;
}
Это меняет Link1
цвет при наведении курсора:
ul > li:first-child a:hover{
color: #87a0b4;
background: blue;
}
Вы можете продолжить и применить любой эффект, который вы хотите. Надеюсь, это поможет 🙂
Комментарии:
1. Как мне получить доступ к единственной ссылке, которая находится в начале выпадающего списка?
Ответ №2:
ul li — целевые пункты списка главного меню
ul li ul li — целевые элементы списка подменю
Чтобы изменить стиль подменю. Вы можете использовать что-то вроде этого.
ul li ul li {
background-color:red;
}
ul li ul li a {
color:green;
}
Смотрите http://jsfiddle.net/2Nh47 /