要实现响应式卡片翻转效果,可以使用CSS3中的transform
属性和@media
查询。以下是一个基本的实现方法:
HTML代码:
<div class="card-wrapper">
<div class="card">
<div class="card-front">
<h2>卡片正面</h2>
</div>
<div class="card-back">
<h2>卡片背面</h2>
</div>
</div>
</div>
CSS代码:
/* 卡片容器 */
.card-wrapper {
display: flex;
justify-content: center;
align-items: center;
height: 300px;
}
/* 卡片 */
.card {
position: relative;
width: 300px;
height: 200px;
transform-style: preserve-3d;
transition: transform 0.6s;
}
/* 卡片正面 */
.card-front,
.card-back {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
backface-visibility: hidden;
}
/* 卡片正面 */
.card-front {
background-color: #f1c40f;
}
/* 卡片背面 */
.card-back {
transform: rotateY(180deg);
background-color: #2ecc71;
}
/* 鼠标悬停时翻转卡片 */
.card-wrapper:hover .card {
transform: rotateY(180deg);
}
/* 响应式 */
@media screen and (max-width: 768px) {
.card {
width: 200px;
height: 150px;
}
}
在上面的代码中,我们使用了flex布局来使卡片容器居中,并使用了transform
属性来实现翻转效果。.card-front
和.card-back
元素是卡片正面和背面的内容,通过设置backface-visibility: hidden
属性来避免翻转时出现闪烁。
当鼠标悬停在卡片容器上时,我们通过设置.card
元素的transform
属性来实现卡片翻转效果。
最后,我们使用@media
查询来使卡片在不同的屏幕尺寸下具有不同的宽度和高度,从而实现响应式效果。
希望这个例子对你有所帮助!