Переход фонового цвета

198

Я пытаюсь сделать эффект перехода с фоновым цветом при зависании элементов меню, но он не работает. Вот мой код CSS:

#content #nav a:hover {
    color: black;
    background-color: #AD310B;
    /* Firefox */
    -moz-transition: all 1s ease-in;
    /* WebKit */
    -webkit-transition: all 1s ease-in;
    /* Opera */
    -o-transition: all 1s ease-in;
    /* Standard */
    transition: all 1s ease-in;
}

#nav div - это меню ul списка элементов.

  • 0
    Просто к вашему сведению, это работает в Firefox сейчас. Проверено в FF9.
Теги:

2 ответа

444

Насколько я знаю, в настоящее время переходы выполняются в Safari, Chrome, Firefox, Opera и Internet Explorer 10 +.

Это приведет к эффекту затухания для вас в этих браузерах:

a {
    background-color: #FF0;
}

a:hover {
    background-color: #AD310B;
    -webkit-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}
<a>Navigation Link</a>

Примечание. Как отметил Джеральд в комментариях, если вы поместите переход на a, а не на a:hover, он будет исчезать до исходного цвета, когда ваша мышь перемещается вдали от ссылки.

Это также может пригодиться: Основы CSS: Переходы CSS 3

  • 34
    Вы также можете вставить переходы в content #nav a для перехода к оригиналу, когда пользователь отводит мышь от ссылки.
  • 2
    Поиграйте с переходами при наведении и клике по адресу: jsfiddle.net/K5Qyx
Показать ещё 6 комментариев
38

Для меня лучше поставить коды перехода с помощью оригинальных/минимальных селекторов, чем с помощью: наведения или любых других дополнительных селекторов:

#content #nav a {
    background-color: #FF0;
    
    -webkit-transition: background-color 1000ms linear;
    -moz-transition: background-color 1000ms linear;
    -o-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}

#content #nav a:hover {
    background-color: #AD310B;
}
<div id="content">
    <div id="nav">
        <a href="#link1">Link 1</a>
    </div>
</div>
  • 6
    Дело не в том, что лучше или хуже. Просто если вы укажете переход на самом элементе, он будет анимирован при наведении элемента и на «раскрытие» элемента. Хотя, если вы примените его к: hover, у вас будет анимация, когда мышь входит, но не когда она уходит.
  • 6
    Это решение в целом лучше. Эффект перехода будет и должен постепенно исчезать при наведении и исчезать при размытии.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню