CSS-эффект при наведении курсора на элемент списка
HTML код
HTML разметка состоит из элементов маркированного списка, внутри блока div.
<div class="list">
<h2>List Item Hover Effect</h2>
<ul>
<li><span>Lorem ipsum dolor sit amet</span></li>
<li><span>Consectetur adipisicing elit</span></li>
<li><span>Ut labore et dolore magna aliqua</span></li>
<li><span>Ut enim ad minim veniam</span></li>
<li><span>Quis nostrud exercitation ullamco</span></li>
<li><span>Laboris nisi ut aliquip ex</span></li>
</ul>
</div>
CSS код
Поместим наш список в центре экрана.
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
body{
display: flex;
justify-content: center;
align-items: center;
background: #000;
min-height: 100vh;
}
.list{
position: relative;
}
.list h2{
color: #fff;
font-weight: 700;
letter-spacing: 1px;
margin-bottom: 10px;
}
.list ul{
position: relative;
}
Для каждого элемента списка сделаем с левой стороны розовую рамку.
.list ul li{
position: relative;
left: 0;
color: #FCE4EC; / * цвет текста * /
list-style: none; / * убираем черные маркеры * /
margin: 4px 0; / * пространство между элементами * /
border-left: 2px solid #F50057; / * стилизация рамки * /
transition: 0.5s; / * плавный переход * /
cursor: pointer;
}
При наведении курсора, элемент списка вместе с рамкой будет сдвигаться вправо.
.list ul li:hover{
left: 10px;
}
Создадим поля вокруг элементов списка. Тег span является строчным элементом и для того, чтобы сработали паддинги, отобразим его как строчно-блочный элемент.
.list ul li span{
position: relative;
padding: 8px;
padding-left: 12px;
display: inline-block; / * отобразить как блочный * /
z-index: 1;
transition: 0.5s;
}
Нарисуем розовую полосу, используя псевдоэлемент before и скроем ее, установив нулевой масштаб по оси X. Свойство transform-origin задает направление трансформации. При наведении курсора на элемент увеличим масштаб на единицу. В результате получится интересная трансформация.
.list ul li:hover span {
color: #111;
}
.list ul li:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
background: #f50057;
transform: scaleX(0); / * скрыть полосу * /
transform-origin: left; / * трансформация относительно левого края * /
transition: 0.5s;
}
.list ul li:hover:before{
transform: scaleX(1);
}
Посмотрите пример на CodePen
Хорошие знания по CSS-свойствам мы можете подчерпнуть из моего видеокурса "Верстка сайта с нуля 2.0".
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.