代码之家  ›  专栏  ›  技术社区  ›  Karan

字体棒极了-在悬停时堆叠圆圈颜色更改

  •  -1
  • Karan  · 技术社区  · 7 年前

    我正在使用字体可怕的图标框架。

    .fa-circle {
      color: red;
    }
    
    .fa-times {
      color: #fff;
    }
    
    .fa-circle:focus,
    .fa-circle:hover {
      color: #fff;
      border: 2px solid black;
    }
    
    .fa-times:focus,
    .fa-times:hover {
      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>

    enter image escription here

    上图为正常状态。

    在悬停或对焦时,我希望圆形颜色变为带红色边框的白色,而时间图标阴影变为红色。我需要在悬停的时候做一些相反的动作。但由于某些原因,这并不是发生在这个圈子里。

    请告诉我哪里出错了。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Temani Afif    7 年前

    您可以这样简化代码,不需要圆形图标:

    .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>