我想尝试为导航栏的文本加下划线,但下划线动画不起作用。
这是我的CSS的下划线
.navbar {
overflow: hidden;
background-color: #333;
}
.navbar a {
float: left;
display: block;
color: #dd5527;
text-align: center;
padding: 14px 20px;
text-decoration: none;
}
.navbar a:after {
content: "";
position: absolute;
background-color: #dd5527;
height: 3px;
width: 0;
left: 0;
bottom: -10px;
transition: 0.3s;
}
.navbar a:hover::after {
width: 100%;
}
这是我的html导航栏
<div class="navbar">
<a class="nav-link nav-link-ltr" href="#">Home</a>
<a class="nav-link nav-link-ltr" href="#">About Us</a>
<a class="nav-link nav-link-ltr" href="#">Services</a>
</div>
2条答案
按热度按时间crcmnpdw1#
它正在工作:你的元素只是在错误的地方被渲染。您需要:
position: relative
添加到<a>
元素,以及0
或正像素值作为伪元素的bottom
属性,以便它不会被父容器上设置的overflow: hidden
截断6jjcrrmo2#
使用
transform:scale(0)
设置初始比例,然后将transform-origin:left;
设置为从左向右变换。然后使用transition:transform 350ms ease-in;
来获得过渡动画,最后将transform:scale(1)
设置为a:hover::after
上的transform:scale(1)
以缩放回原始大小。我还为underline和a标签设置了一些样式。我建议你在导航栏上使用display:flex;
,而不是在a标签上使用float:left
。