【发布时间】:2021-11-08 23:45:49
【问题描述】:
我有一个带有 CSS 动画链接的导航(在元素顶部画一条线)
a, a.nav-link{
text-decoration: none;
color: #594922;
}
a.nav-link:hover{
color: #4dd897
}
a.nav-link::before{
content: '';
height: 1px;
background: #594922;
display: block;
transform: scale(0, 1);
transition: transform 0.4s cubic-bezier(1, 0, 0, 1)
}
a.nav-link:hover::before {
transform-origin: right top;
transform: scale(1, 1)
}
<ul>
<li>
<a class="nav-link">abcde</a>
</li>
<li>
<a class="nav-link">b</a>
</li>
<li>
<a class="nav-link">c</a>
</li>
</ul>
我现在要做的是忽略第一个链接上的动画,我尝试添加 :not(:first-of-type) 但它破坏了整个动画
a, a.nav-link{
text-decoration: none;
color: #594922;
}
a.nav-link:hover{
color: #4dd897
}
a.nav-link:not(:first-of-type)::before{
content: '';
height: 1px;
background: #594922;
display: block;
transform: scale(0, 1);
transition: transform 0.4s cubic-bezier(1, 0, 0, 1)
}
a.nav-link:hover::before {
transform-origin: right top;
transform: scale(1, 1)
}
<ul>
<li>
<a class="nav-link">abcde</a>
</li>
<li>
<a class="nav-link">b</a>
</li>
<li>
<a class="nav-link">c</a>
</li>
</ul>
感谢您的帮助,谢谢
【问题讨论】:
-
是你要选择的第一个li,而不是li里面的第一个a
-
当然
a.nav-link:not(:first-of-type)会破坏一切,因为这样,您的没有 个链接将不再被选中。它们都是其各自父级(即 LI)中该类型的第一个(也是最后一个也是唯一的)元素。
标签: css pseudo-element pseudo-class