Карточка товара с выезжающим текстом 2025: hover-эффект
765
Время чтения: 9 минут
В данном уроке напишем карточку товара с выезжающим блоком текста и нестандартным изначальным видом. Подобные карточки могут стать настоящей изюминкой сайта, а их запоминаемость - одна из причин роста продаж.
Для создания карточки кнопки перекопируйте следующие части кодов:
<div class="eCard">
<div class="img">
<a href="#">
<img src="https://www.oweb-solutions.ru/images/site/week7_1100.jpg" alt="">
</a>
</div>
<div class="eCard_content">
<h3>
Название карточки
</h3>
<p>
Текст. Здесь может напечатан абсолютно любой текст, по вашему усмотрению.
Однако, есть небольшой нюанс. Размер текста не долже превышать 220 знаков.
У декоративных карточек свои капризы :)
</p>
</div>
</div>
.eCard {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
max-width: 280px;
height: 250px;
box-sizing: border-box;
font-family: Helvetica, sans-serif;
background-color: #fff;
box-shadow: 0 5px 50px rgba(0, 0, 0, 0.5);
padding: 20px 10px 40px;
margin-top: 60px;
transition: 0.5s ease-in-out;
z-index: 1;
}
.eCard .img {
position: relative;
top: -60px;
left: 0;
width: 260px;
height: 250px;
transition: 0.5s ease-in-out;
z-index: 1;
}
.eCard .img img {
max-width: 260px;
height: 250px;
object-fit: cover;
object-position: center;
border-radius: 4px;
}
.eCard .img a {
display: inline-block;
width: 100%;
height: 100%;
}
.eCard_content {
position: relative;
width: 260px;
text-align: center;
visibility: hidden;
opacity: 0;
padding: 10px;
transition: all 0.3s ease-in-out;
transition-delay: 0.1s;
overflow: hidden;
}
.eCard h3 {
font-size: 20px;
line-height: 1.3;
color: #111;
margin: 0 0 10px;
}
.eCard p {
font-size: 16px;
line-height: 1.3;
color: #8f8f8f;
margin: 0;
}
.eCard:hover {
height: 500px;
}
.eCard:hover .img {
top: 0;
}
.eCard:hover .eCard_content {
visibility: visible;
opacity: 1;
margin-top: 0;
}
После копирования вышеупомянутых кусков кода у вас должна появиться такая карточка:
Название карточки
Текст. Здесь может напечатан абсолютно любой текст по вашему усмотрению. Однако есть небольшой нюанс. Размер текста не должен превышать 220 знаков. У декоративных карточек свои капризы :)
Наша карточка товара готова. Для ее корректной работы не рекомендуем вносить изменения в структуру html (исключение - название карточки, текст и картинка, их менять можно) и CSS кода.
Вы будете получать статьи по нашим направлениям, советы и кейсы предпринимателей
Часто задаваемые вопросы
Как сделать, чтобы текст выезжал при наведении, а не появлялся сразу?
В приведённом CSS-коде используется свойство `transition: 0.5s ease-in-out;` для плавной анимации. Чтобы текст выезжал, нужно задать для блока `.eCard_content` начальное смещение (например, `transform: translateY(100%)`) и при наведении на карточку возвращать его в исходное положение с помощью `.eCard:hover .eCard_content { transform: translateY(0); }`.
Почему в карточке текст ограничен 220 знаками и как это проверить?
Ограничение связано с дизайном карточки: при большем объёме текст может выходить за границы блока или ломать анимацию. Рекомендуется проверять количество символов вручную или через JavaScript-валидацию, чтобы сохранить эстетичный вид и корректную работу hover-эффекта.
Как изменить скорость выезда текста или добавить задержку?
Скорость регулируется параметром `0.5s` в свойстве `transition: 0.5s ease-in-out;` — увеличьте или уменьшите это значение. Для задержки перед анимацией добавьте `transition-delay: 0.2s;` в тот же блок CSS для класса `.eCard` или `.eCard_content`.
Можно ли использовать эту карточку для других элементов, например, для портфолио или услуг?
Да, карточка универсальна: замените изображение и текст под свои задачи. Главное — сохранить структуру HTML (классы `.eCard`, `.img`, `.eCard_content`) и CSS-стили, чтобы hover-эффект работал корректно. Для портфолио можно убрать ссылку, если она не нужна.
Почему изображение смещено вверх (top: -60px) и как это исправить под свои размеры?
Смещение `top: -60px` создаёт эффект наложения картинки на верхнюю границу карточки, что делает дизайн нестандартным. Чтобы изменить отступ, отредактируйте это значение в CSS для класса `.eCard .img` — например, на `top: -30px` для меньшего наложения или `0` для стандартного расположения.