首先,给 <span>
标签添加一个父元素,定义属性类名:nav-wrapper ,父级设置相对定位。然后,使用 ::after
伪元素来创建一个与底部边框相同宽度的元素,初始时宽度为 0,通过过渡动画transition逐渐增加宽度,从而实现从左到右的过渡效果。
<div class="nav-wrapper"><span class="nav" :class="$route.fullPath === '/companyProducts' ? 'active' : ''">公司产品</span></div>
.nav-wrapper {position: relative;
}.nav::after {content: "";position: absolute;left: 0;bottom: 0;width: 0;height: 2px;background-color: red;transition: width 0.3s ease;
}.nav:hover::after,
.nav:focus::after {width: 100%;
}//当前路由样式
.active {color: #cd1e19;font-weight: 700;}