Как сделать ховер-эффект при наведении мыши на CSS?
Хочу, чтобы при наведении на карточку она чуть подсвечивалась или приподнималась. Знаю, что есть :hover, но не до конца понимаю, как им пользоваться и что можно менять. Покажете пример?
2 ответа
Эффект при наведении делается через псевдокласс :hover — он применяет стили, пока курсор над элементом.
.card {
background: #fff;
box-shadow: 0 2px 6px rgba(0,0,0,.1);
transition: transform 0.2s, box-shadow 0.2s; /* для плавности */
}
.card:hover {
transform: translateY(-4px); /* приподнять */
box-shadow: 0 8px 20px rgba(0,0,0,.18); /* усилить тень */
}
<div class="card">Наведи на меня</div>
Пишется как селектор:hover { ... } — это «дельта», которая накладывается поверх обычных стилей при наведении. Менять можно почти всё: цвет, фон, размер, тень, прозрачность.
Ключевая связка — добавить transition на базовом селекторе, иначе эффект будет резким, дёрганым. С переходом получается мягкое «всплывание».
Полезные приёмы:
- подсветка дочернего элемента при наведении на родителя:
.card:hover .title { color: #4f46e5; }
- учтите, что на сенсорных экранах
:hoverведёт себя странно (срабатывает «залипанием» после тапа). Поэтому не прячьте важные вещи только за hover — на телефоне до них не добраться. Делайте ховер приятным бонусом, а не единственным способом что-то увидеть.
Не забывайте про «брата» — :focus. Для ссылок и кнопок добавляйте те же или похожие стили на :focus/:focus-visible, чтобы эффект работал и при навигации с клавиатуры (Tab), а не только мышью. Это и про доступность, и про то, что часть пользователей вообще без мыши.