更改悬停状态图标的颜色

时间:2018-06-20 19:42:16

标签: html5 css3 icons frontend

我有一个侧面菜单,在<li>标记内,我有一个图标和一个文本。 当鼠标悬停时,我希望图标变为白色。现在,只有文本变为白色。我看过其他帖子,但没有用。

没有悬停[正常状态]

enter image description here

悬停[悬停状态]

enter image description here

<li>
   <a href="#">
      <span class="icon-patient"></span>
   </a>
   <p>Paciente</p>
 </li>

li p {
font-size: 0.8em;
}

li span {
font-size: 1.8em;
}

li span:hover {
color: #fff;
}

li a:hover {
text-decoration: none;
}

ul li:hover {
background-color: #5D9CF3;
cursor: pointer;
color: #fff;
transform: perspective(1px) translateZ(0);
transition-duration: 0.25s;
transition-property: background-color;
}

4 个答案:

答案 0 :(得分:0)

尝试一下:

li:hover span {
 color: #fff!important;
}

如果这不能帮助您的图标不是字体,那么

如果它不起作用并且它是一种字体,我们可以尝试以下解决方案:

li:hover a {
 color: #fff!important;
}
li:hover a span{
 color: inherit;
}

答案 1 :(得分:0)

我会尝试这样的事情:

li p {
  font-size: 0.8em;
}

li span {
  font-size: 1.8em;
}

li:hover {
  background-color: #5D9CF3;
  cursor: pointer;
  color: #fff;
  transform: perspective(1px) translateZ(0);
  transition-duration: 0.25s;
  transition-property: background-color;
}

li:hover a{
  text-decoration: none;
}

li:hover span {
  color: #fff;
}

我对发生的事情的直觉是,css解释器正在查看您的li a:hover标记,例如,“当li未被悬停,而是嵌套了一个is时”,这意味着li:hover不在显示。这些标签将鼠标悬停在li上。我想您甚至可以将鼠标悬停在两者上,所以li:hover a:hover,但是我自己还没有尝试过。

答案 2 :(得分:0)

我使用了您的代码,并使用提供的图像更改了CSS的一点点,只是为了实现悬停效果。

您可以检查这是否是您想要实现的吗?

https://codepen.io/alexandrecanijo/pen/jKzVwK

CSS就像:

.link p {
    font-size: 0.8em;
    margin-top: 20px;
}

.link span {
    font-size: 1.8em;
}

.link {
    display: block;
    width: 80px;
    height: 80px;
    background: #fff;
    text-align: center;
    padding: 5px;
    text-decoration: none;
}

.link:hover {
    cursor: pointer;
    background: #5D9CF3;
    color: #fff;
    transition-duration: 0.25s;
    transition-property: background-color;
}

.icon-patient {
    margin: 0 auto;
    width: 20px;
    height: 20px;
    display: block;
}

.icon-patient:before {
    font-family: "Font Awesome 5 Free";
    content: "\f007";
}

.link:hover .icon-patient:before {
    color: #fff;
}

答案 3 :(得分:0)

您可以尝试一下。它对我有用:

li a span:hover{
  color: #fff;
}