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

286

Я пытаюсь сделать эффект перехода background-colorпри наведении на пункты меню, но это не работает. Вот мой код 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.

Жан-парень
источник
Просто к вашему сведению, это работает в Firefox сейчас. Проверено в FF9.
C.Brown

Ответы:

527

Насколько я знаю, переходы в настоящее время работают в 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

подвздошная кость
источник
38
Вы также можете вставить переходы в content #nav aдля перехода к оригиналу, когда пользователь отводит мышь от ссылки.
Гак
2
Поиграйте с переходами при наведении и клике по адресу: jsfiddle.net/K5Qyx
Дем Пилафян
3
Разве не было бы лучше поместить transition:в non-hover? Я думаю, что каждый раз, когда пользователь зависает, переход компилируется ..
Matej
1
@Illium Link мертв
ferdynator
2
CSS, по- transitionвидимому, не может обрабатывать цвета типа «линейный градиент», как можно проверить здесь . И кстати, ответ @ Ilium заслуживает того, чтобы быть отмеченным как решение.
Stacky
86

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

#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>

Реза Мамун
источник
8
Дело не в том, что лучше или хуже. Просто если вы укажете переход на самом элементе, он будет анимирован, когда элемент наведен и когда он «обнаружен». Хотя, если вы примените его к: hover, у вас будет анимация, когда мышь входит, но не когда она уходит.
LucasBeef
6
Это решение в целом лучше. Ожидается, что эффект перехода будет и должен исчезать при наведении и исчезать при размытии.
Chizzle