Причиной, по которой я переработал CSS и HTML, является b / c после добавления вашего кода в JSFiddle, он сразу же не отображался правильно.
Первая проблема заключается в том, что вы нужен другой элемент-обертка для хранения контейнеров (card__face
). Также perspective
не может быть унаследовано. К сожалению, анимация не будет работать, если только height
не был предоставлен для основного элемента оболочки. min-height
тоже не сработало.
Вы можете запустить JS и определить высоту под нагрузкой. (см. Флипчарт CSS3 с Automati c Высота )
<div class="gallery-cell card flippable">
<div class="wrapper">
<div class='card__face card__face--front'>
<div class='card_contents'>
<h3>
$question
</h3>
</div>
</div>
<div class='card__face card__face--back'>
<div class='card_contents'>
<h3>
$answer
</h3>
</div>
</div>
</div>
</div>
.gallery-cell {
background-color: transparent;
width: 100%;
height: 100px;
perspective: 1000px;
}
.wrapper {
position: relative;
width: 100%;
height: 100%;
text-align: center;
transition: transform 0.5s;
transform-style: preserve-3d;
}
.gallery-cell:hover .wrapper,
.gallery-cell.flipped .wrapper {
transform: rotateY(180deg);
}
.card__face {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.card__face--front {
background-color: red;
}
.card__face--back {
background-color: #000;
color: white;
transform: rotateY(180deg);
}
.card_contents {
overflow-y: auto;
margin: 0;
display: flex;
}
Я добавил hover
на случай, если вы хотите его протестировать - вот https://jsfiddle.net/rzqkpva9/