Могу ли я использовать флип-карты по щелчку вместо наведения

#html #css #css-selectors #frontend #css-animations

#HTML #css #css-селекторы #интерфейс #css-анимация

Вопрос:

Я вроде как новичок в CSS, и меня попросили изменить некоторые существующие флип-карты, чтобы они переключались по щелчку вместо наведения. Вот код.

  .flip-card {
    background-color: transparent;
    width: 300px;
    /*increase the card width and height by 20px*/
    height: 300px;
    perspective: 600px;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s;
    transform-style: preserve-3d;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
}

.flip-card:hover .flip-card-inner {
    transform: rotateY(180deg);
}


.flip-card-front,
.flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.flip-card-front {
    background-color: #ffca33;
    color: black;
}

.flip-card-back {
    background-color: #2980b9;
    color: white;
    transform: rotateY(180deg);
}
 

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

Ответ №1:

К сожалению, нет. Вы не можете отслеживать события щелчка с помощью CSS. Если вам нужны события щелчка, используйте JavaScript.

 document.getElementsByClassName("flip-card-front")[0]
    .onclick = function(){
    this.classList.toggle("active")
    }
 

Пожалуйста, обратите внимание, что эта форма вступит в силу только для первой флип-карты. Если вы хотите большего, вам нужен какой-то цикл или даже установка события onclick на весь экран и проверка, соответствует ли цель флип-карте.