您可以这样简化代码,不需要圆形图标:
.fa-times {
color: #fff;
}
.fa-stack {
border-radius: 50%;
background: red;
box-sizing: border-box;
border: 1px solid transparent;
transition:.5s;
}
.fa-stack:hover {
background: #fff;
border-color:#000;
}
.fa-stack:hover .fa-times {
color: red;
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css">
<span class="fa-stack fa-lg">
<i class="fa fa-times fa-stack-1x"></i>
</span>
考虑到您的初始代码,问题是您正在将鼠标悬停在子元素上,但应该将其应用于父元素,因为圆不会悬停,因为它在十字下面:
.fa-circle {
color: red;
}
.fa-times {
color: #fff;
}
.fa-stack:hover .fa-circle {
color: #fff;
}
.fa-stack:hover .fa-times {
color: red;
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" >
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-times fa-stack-1x"></i>
</span>