Есть ли способ, чтобы кнопка my: active не отображала эффект наведения родительского элемента на :: before / :: after? - PullRequest
0 голосов
/ 16 мая 2019

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

Насколько я могу судить, у меня есть только эффект наведения на родительский элемент .project, который отображает его:: before и :: after псевдоэлементы (те же красные полосы, которые я упоминал выше).Я хочу, чтобы это продолжалось, но просто не хочу, чтобы кнопки на кнопке нажимались на нее.

Я попытался переместить свой псевдокласс: active в различные части моего кода, чтобы увидеть, может ли это бытькаскадная проблема, но не похоже, что это так.Я также поместил стили: active в конец кода, чтобы убедиться, что псевдо-классы, такие как: hover, появились до него (я думаю, что если они вышли из строя, могут возникнуть другие проблемы).Я даже использовал инструменты разработчика, чтобы вызвать активное состояние (как ни странно, тогда столбцы не появлялись).

    <section class="projects">
      <div class="project">
       <h2 class="project__title">To-Do List App</h2>
       <p class="project__description">This project demonstrates my understanding of HTML, CSS, and Javascript.</p>
       <button class="btn btn--pos">Go to Project</button>
      </div>
     </section>

```CSS

    .projects {
      display: grid;
      grid-gap: .625em;
    }

    .project {
      position: relative;
      box-sizing: border-box;
      width: 100%;
      max-width: 400px;
      padding: 1.25em;
      border-radius: 10px;
      background: black;

      &:hover > ::before, &:hover > ::after {
       content: '';
       position: absolute;
       height: 10px;
       background: red;
       animation: fillin .3s linear forwards;
      }

      &:hover > ::before {
       top: 0;
       left: 0;
       border-top-left-radius: 10px;
      }

      &:hover > ::after {
       bottom: 0;
       right: 0;
       border-bottom-right-radius: 10px;
      }

      &__title {
       font: bold 1.5rem/1.4 serif;
       color: white;
       text-align: center;
       margin: 0;
      }

      &__description {
       font: 1rem/1.4 serif;
       color: white;
       text-align: center;
       margin: .625em;
      }
    }

    .btn {
      display: block;
      background: transparent;
      color: white;
      padding: 7px 30px;
      border: 1px solid white;
      border-radius: .625em;
      margin: 0 auto;
      transition: background .25s, color .25s;
      cursor: pointer;

      &:hover {
       background: white;
       color: black;
      }

      &:active {
       transform: translateY(4px);
      }
    }

    @keyframes fillin {
      from { width: 0; }
      to { width: 60%; }
    }

1 Ответ

0 голосов
/ 17 мая 2019

Просто прокомментируйте ниже строки из кода CSS:

 &:active {
   transform: translateY(4px);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...