Чтобы создать плавное подчеркивание при наведении на текст в CSS, можно использовать свойство text-decoration
и псевдокласс :hover
. Рассмотрим пример:
HTML:
<span class="underline">Текст с подчеркиванием</span>
CSS:
.underline {
position: relative;
text-decoration: none;
color: black;
transition: all 0.4s;
}
.underline:hover {
text-decoration: none;
color: blue;
}
.underline::after {
content: "";
position: absolute;
width: 100%;
height: 1px;
bottom: -2px;
left: 0;
background-color: blue;
visibility: hidden;
transition: all 0.4s ease-in-out;
}
.underline:hover::after {
visibility: visible;
transform: scaleX(1);
}
В этом примере мы добавляем плавное подчеркивание при наведении на текст.
Сначала мы устанавливаем для текста свойство position: relative
, чтобы потом использовать абсолютное позиционирование для создания подчеркивания.
Мы также устанавливаем свойство text-decoration: none
для исключения дефолтного подчеркивания.
Также мы добавляем свойство transition
для создания плавного эффекта.
Затем мы добавляем псевдоэлемент ::after
, который создает подчеркивание. Устанавливаем ему абсолютное позиционирование и задаем его высоту и ширину. Вертикальное расположение подчеркивания устанавливается свойством bottom
.
Когда наш текст наводится мышью, мы изменяем цвет текста на синий и высвечиваем наше подчеркивание с помощью псевдоэлемента ::after
.
Запомните, что ::before
и ::after
— это псевдоэлементы относящиеся к элементу. ::after
— это псевдоэлемент, который относится к концу элемента, а ::before
относится к началу элемента.