Получение: наведите курсор мыши, чтобы настроить более одного класса / идентификатора

#css #menu #hover #background-position #nav

#css #меню #наведите #background-position #навигация

Вопрос:

Изо всех сил пытался заставить что-то работать, и я уже просмотрел кучу мест, любая помощь с благодарностью.

В основном у меня есть навигационное меню, состоящее из нескольких изображений с опрокидыванием (обычное состояние «левый верхний», состояние наведения «левый нижний», в настоящее время они настроены на опрокидывание по отдельности с помощью css — они выглядят так:

 <ul id="menu">
<li><a href="#" class="home">Home</a></li>
<li><a href="#" class="archives">Archives</a></li>
<li><a href="#" class="contact">Contact</a></li>
<li><a href="#" class="about">About</a></li>
</ul>

#menu {
list-style: none;
padding: 0;
margin: 0 auto;
height: 24.6em;
width: 79em;
position: relative;
}

#menu a {
display: block;
text-indent: -900%;
position: absolute;
outline: none;
}


#menu a:hover {
background-position: left bottom;}


#menu .home {
width: 520px;
height: 124px;
background: url(images/Home Menu.png) no-repeat;
left: 0px;
top: 122px;
}

#menu .archives {
width: 263px;
height: 57px;
background: url(images/Archives Menu.png) no-repeat;
left: 0px;
top: 189px;
}

and so on for the rest of the links.
  

Теперь, чего я пытаюсь достичь, это чтобы все они переключались при наведении курсора на любой из них. Допустим, я завис над «архивами»; следующее перевернулось бы над «архивами, контактами, информацией»

Я уже пробовал следующее, и это не сработало (предложение opacity сделало именно то, что я хотел, но по какой-то причине это, похоже, не работает для «background-position»):

 #menu:hover .archives {background-position: left bottom; opacity: 0.5}
#menu:hover .contact {background-position: left bottom; opacity: 0.5}
#menu:hover .about {background-position: left bottom; opacity: 0.5} 
  

Как бы я добился этого? заранее спасибо за любую помощь!

Ответ №1:

онно,

Вы были на правильном пути, но он не работает из-за требований специфики. Попробуйте пойти по этому пути:

 #menu:hover a { background-position: left bottom; opacity:0.5; }
  

Если это все еще не работает, попробуйте:

 #menu:hover li a { background-position: left bottom; opacity:0.5; }
  

Наконец, вы также можете применить !important к правилу для обеспечения соблюдения правила. !важен специальный флаг для CSS, который сообщает браузеру «Это переопределяет все, что вы можете подумать» (своего рода).Вот пример:

 #menu:hover li a { background-position: left bottom !important; opacity:0.5; }
  

Для получения дополнительной информации о специфике ознакомьтесь с этой статьей на W3C. Короче говоря, специфика определяет, какие стили используются в какое время. Применяемый стиль элемента определяется, правило за правилом, стилем с наибольшей специфичностью для каждого из стилей, которые могут применяться.

FuzzicalLogic

Комментарии:

1. вы, сэр, джентльмен и ученый. это великолепно! работает как шарм. большое спасибо

2. Большое спасибо. Рад, что смог помочь. W3C — это боль для чтения, но в нем много информации, которую многие пропускают при изучении CSS из любого другого источника. (Это также очень сухо).

Ответ №2:

left-bottom возможно, изменения недостаточно, чтобы вы не заметили изменения. попробуйте правильно?

Комментарии:

1. Если вы читаете CSS, положение фона не применяется к меню. Кроме того, вы предполагаете, что у него нет стиля, определенного в его HTML. Если он определит фоновое изображение в своем HTML, положение фона действительно будет применяться.