#css
#css
Вопрос:
У меня есть код:
ul {
width: 160px;
}
ul li a {
padding-bottom: 40px;
}
ul li a {
position: relative;
display: block;
transition: all .3s ease-in;
}
ul li a:hover:after {
content: '';
width: 26px;
height: 10px;
background-color: #10c3a2;
position: absolute;
top: 30px;
left: 0;
display: block;
}
<ul>
<li><a href="">Item</a>
<li><a href="">Item</a>
</ul>
Почему переход не работает при наведении курсора мыши: после? Я пытался поместить переход при наведении курсора мыши и после, но это не работает. Как я могу решить эту проблему?
Комментарии:
1. Поскольку ваш псевдоэлемент существует только при наведении курсора на ссылку, как только этого больше не происходит, он немедленно исчезает.
Ответ №1:
Свойства, подобные content
и display
не подлежащие переходу. Они должны быть объявлены в базовом состоянии, а затем вы можете передавать числовые свойства, например opacity
, если вы хотите, чтобы они исчезали / исчезали.
p / s: используйте ::after
вместо :after
. Последнее является старым синтаксисом.
ul {
width: 160px;
}
ul li a {
padding-bottom: 40px;
}
ul li a {
position: relative;
display: block;
transition: all .3s ease-in;
}
ul li a::after {
content: '';
width: 26px;
height: 10px;
background-color: #10c3a2;
position: absolute;
top: 30px;
left: 0;
display: block;
opacity: 0;
transition: all .3s ease-in;
}
ul li a:hover::after {
opacity: 1;
}
<ul>
<li><a href="">Item</a></li>
<li><a href="">Item</a></li>
</ul>
Ответ №2:
вам нужно добавить это в :after
ul {
width: 160px;
}
ul li a {
padding-bottom: 40px;
}
ul li a {
position: relative;
display: block;
transition: all .3s ease-in;
text-decoration: none;
}
ul li a:after {
content: '';
width: 0;
height: 10px;
background-color: #10c3a2;
position: absolute;
top: 30px;
left: 0;
display: block;
transition: all .3s ease-in;
}
ul li a:hover:after {
width: 26px;
}
<ul>
<li><a href="">Item</a>
<li><a href="">Item</a>
</ul>