在我的模板中,我经常使用 FontAwesome,我想出了这个 CSS 技巧
* > .fa-hover-show,
*:hover > .fa-hover-hidden {
display: none;
}
*:hover > .fa-hover-show {
display: inline-block;
}
将两个图标添加到 HTML;默认图标应该有fa-hover-hidden
类,而悬停图标应该有fa-hover-show
。
<a href="#">
<i class="fa fa-lock fa-hover-hidden"></i>
<i class="fa fa-lock-open fa-hover-show"></i>
<span class="fa-hover-hidden">Locked</span>
<span class="fa-hover-show">Unlocked</span>
</a>
鉴于图标具有悬停效果,它很可能位于按钮或链接内,在这种情况下,适当的解决方案是也对 :focus 上的更改做出反应。
* > .fa-hover-show,
*:hover > .fa-hover-hidden,
*:focus > .fa-hover-hidden {
display: none;
}
*:focus > .fa-hover-show,
*:hover > .fa-hover-show {
display: inline-block;
}