【问题标题】:FontAwesome hover effect not workingFontAwesome 悬停效果不起作用
【发布时间】:2016-02-28 05:56:55
【问题描述】:

我正在尝试在按钮上获得简单的悬停效果,该效果已经适用于按钮背景和文本,但不适用于 FontAwesome-Icon。该图标仅在非悬停时出现。我已经尝试过大多数组合,例如

fa-chevron-right:hover:before {color: X;}

.vc_btn-icon3:hover .fa-chevron-right { color: X;}

和许多其他组合,但我无法让它以正确的方式工作。你能告诉我我的错误在哪里以及它的样子吗?这是我已经得到的。请注意,因为我使用的是 wordpress 主题,因此有很多课程。对我作为一个新人来说,把事情做对变得更加困难:/

HTML

 <div class="shortcode-action-container action-button">
    <a href="LINK" class="btn-shortcode dt-btn-l dt-btn default-btn-color
     default-btn-hover-color default-btn-bg-color default-btn-bg-hover-color 
    fadeIn animate-element animation-builder" 
    target="_blank" id="dt-btn-1">
    <span>Mehr Informationen 
    <i class="vc_btn3-icon fa fa-chevron-right"></i></span></a></div>

CSS

#dt-btn-1 {
background-color:#002E5B;
color: #fff;
font-family: Montserrat;
font-size: 14px;
line-height: 23px;
font-weight: 700;
background: #002E5B;
border: solid 3px transparent;
padding: 8px 21px;
}

.vc_btn3-icon {
margin-left: 0.5em;
margin-right: 0px !important;

.fa-chevron-right:before {
font-family: FontAwesome;
color: #002e5b;
content: "\f054";
font-size: 14px;
line-height: 14px;
color: #fde428;
}

#dt-btn-1:hover {
background: none;
background: transparent !important;
background-color: transparent !important;
border-color: #fff !important;
border-radius: 3px;
color: #002e5b !important;
border: solid 3px #fff;
-webkit-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}

谢谢!

【问题讨论】:

  • 对不起,我还应该补充一点,我只想在悬停时更改 FontAwesome-Icon 的颜色。图标出现时没有悬停效果。悬停效果没有图标或图标可能与整个背景具有相同的背景颜色
  • 因为这是您的第 1 篇帖子并且似乎已解决,您可以单击 @Aziz 答案旁边的刻度线以接受它。它可能也值得一票以表示赞赏。

标签: html css hover font-awesome


【解决方案1】:

定位图标的正确方法是使用以下选择器:

#dt-btn-1:hover .fa-chevron-right:before { ... }

这是一个工作演示:

a {text-decoration: none;}

#dt-btn-1 {
  background-color: #002E5B;
  color: #fff;
  font-family: Montserrat;
  font-size: 14px;
  line-height: 23px;
  font-weight: 700;
  background: #002E5B;
  border: solid 3px transparent;
  padding: 8px 21px;
}

.vc_btn3-icon {
  margin-left: 0.5em;
  margin-right: 0px !important;
}

.fa-chevron-right:before {
  font-family: FontAwesome;
  color: #002e5b;
  content: "\f054";
  font-size: 14px;
  line-height: 14px;
  color: #fde428;
  transition: all .2s ease-in-out;
}

#dt-btn-1:hover {
  background: none;
  background: transparent !important;
  background-color: transparent !important;
  border-color: #fff !important;
  border-radius: 3px;
  color: #002e5b !important;
  border: solid 3px #fff;
  -webkit-transition: all .2s ease-in-out;
  transition: all .2s ease-in-out;
}

#dt-btn-1:hover .fa-chevron-right:before {
  color: red;
}
<div class="shortcode-action-container action-button">
  <a href="LINK" class="btn-shortcode dt-btn-l dt-btn default-btn-color
     default-btn-hover-color default-btn-bg-color default-btn-bg-hover-color 
    fadeIn animate-element animation-builder" target="_blank" id="dt-btn-1">
    <span>
      Mehr Informationen
      <i class="vc_btn3-icon fa fa-chevron-right"></i>
    </span>
  </a>
</div>

请注意,您的 CSS 代码无效,因为:

.vc_btn3-icon {
margin-left: 0.5em;
margin-right: 0px !important;

}

.fa-chevron-right:before {

working jsFiddle demo

【讨论】:

  • 嘿,阿齐兹,你成就了我的一天!有没有办法轻松找到正确的选择器,也许使用像萤火虫之类的工具。像那样?无论如何,您的解决方案效果很好。非常感谢您的帮助,我已经花了几个小时才找到正确的 CSS 选择器!谢谢! :)
  • 您可以随时使用开发检查器查看您需要定位的元素,您甚至可以在style 窗口中实时使用它的 CSS 来确保您想要进行的更改能够生效.至于:hover,始终建议从父元素(通常是锚标签或按钮)开始,然后在悬停状态下添加要更改的子元素,如下所示:parent:hover child { change; } 在您的情况下,父元素是@ 987654331@,我们想改变的孩子是.fa-chevron-right:before
  • 非常感谢阿齐兹,我会记住这一点的!有一个美好的夜晚,白天,一周,一个月和一年。祝你一切顺利:)
  • 乐于助人!如果我的回答解决了您的问题,请单击大复选框接受它作为答案。欲了解更多信息:how does accepting an answer work?
  • 当然,我的朋友。这是我的第一篇文章,我们开始吧!
猜你喜欢
  • 2014-06-10
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
  • 2016-08-04
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多