значок не отображается при наведении курсора с помощью sass - PullRequest
1 голос
/ 06 марта 2019

Я использую scss и пытаюсь скрыть значок, и когда я наведу курсор на кнопку, я хочу, чтобы значок отображался. Я также хочу оживить это, поэтому я не могу использовать показ: ни один, поскольку я полагаю, что Вы не можете оживить это. Поэтому я попытался использовать непрозрачность и видимость.

У меня 2 проблемы. Во-первых, текст в кнопке не центрирован, потому что значок находится в невидимом состоянии, но когда вы переходите к инструментам разработки, вы все равно можете видеть его там. Во-вторых, значок не появляется при наведении.

.btn {
  text-transform: uppercase;
  text-decoration: none;
  padding: 1.5rem 4rem;
  display: inline-block;
  font-size: 1.6rem;
  box-shadow: 0 1rem 2rem rgba($color-black, .2);
  &--primary {
    background-color: $color-primary;
    color: $color-white;
    transition: all .2s;
    &__icon {
      visibility: hidden;
      opacity: 0;
    }
    &:hover {
      transform: translateY(-2px);
      &__icon {
        visibility: visible;
        opacity: 1;
      }
    }
  }
}
<a href="#" class="btn btn--primary">Discover More <i class="btn--primary__icon icon-basic-clockwise"></i></a>

1 Ответ

1 голос
/ 06 марта 2019

Я думаю, что проблема в том, что ваш значок отображается встроенным с нулевым содержанием.Я думаю, что вам может понадобиться изменить значок на display: inline-block; и задать ему некоторые размеры.Вы захотите установить размеры 0px, когда значок не будет виден.

Я преобразовал ваш код из SCSS в CSS и заменил переменные $ фактическими цветами CSS, чтобы сделать рабочий фрагмент..

.btn {
  text-transform: uppercase;
  text-decoration: none;
  padding: 1.5rem 4rem;
  display: inline-block;
  font-size: 1.6rem;
  box-shadow: 0 1rem 2rem rgba(0,0,0, .2);
  width: 240px;
}
.btn--primary {
  background-color: red;
  color: white;
  transition: all .2s;
}
.btn--primary__icon {
  display: inline-block;
  width: 0px;
  height: 0px;
  visibility: hidden;
  opacity: 0;
}
.btn--primary:hover {
  transform: translateY(-2px);
}
.btn--primary:hover .btn--primary__icon {
  width: 20px;
  height: 20px;
  background-color: blue;
  visibility: visible;
  opacity: 1;
}
<a href="#" class="btn btn--primary">
  Discover More 
  <i class="btn--primary__icon icon-basic-clockwise"></i>
</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...