效果展示
页面结构组成
页面的组成部分主要是卡片。其中卡片的组成部分主要是包括了图片和详情。
卡片的动效是鼠标悬停在卡片上时,图片会移动到左侧,并且图片是毛玻璃效果。所以我们在布局的时候图片会采用绝对布局。而详情则是基础布局。
CSS3 知识点
- 响应式
- 绝对布局
- filte 属性的 invert 值使用
- backdrop-filter 属性
实现卡片基础布局
<div class="card"><div class="img_box"><img src="./images/Baseball.png" /></div><div class="content"><div><h3>棒球</h3><p>一种团体球类运动,由人数最少为9人的两支队伍在一个扇形的棒球场进行攻击与守备。<a href="#"></a></p></div></div>
</div>
.container .card {position: relative;display: flex;height: 250px;background: #fff;border-radius: 20px;margin: 30px 0;width: 45%;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
实现卡片图片样式
.container .card .img_box {position: absolute;top: 10px;left: 10px;background: rgba(255, 255, 255, 0.1);backdrop-filter: blur(20px);height: calc(100% - 20px);width: calc(100% - 20px);z-index: 1;display: flex;justify-content: center;align-items: center;overflow: hidden;border: 1px solid rgba(255, 255, 255, 0.2);box-shadow: 5px 5px 30px rgba(0, 0, 0, 0.1);transition: 0.5s ease-in-out;
}.container .card .img_box img {max-width: 100px;filter: invert(1);transition: 0.5s ease-in-out;
}
添加卡片动画效果
.container .card:hover .img_box {height: 150px;width: 150px;left: -75px;top: calc(50% - 75px);border-radius: 10px;
}.container .card:hover .img_box img {max-width: 75px;
}
响应式样式添加
@media (max-width: 992px) {.container .card {width: 300px;height: auto;flex-direction: column;background: transparent;margin: -20px 0;box-shadow: none;}.container .card .img_box {position: relative;border-radius: 20px;}.container .card .img_box,.container .card:hover .img_box {width: 80%;height: 200px;top: 100px;left: 10%;}.container .card:hover .img_box {top: 80px;}.container .card .img_box img,.container .card:hover .img_box img {max-width: 100px;}.container .card .content {position: relative;width: 100%;background: #fff;box-shadow: none;border-radius: 20px;padding: 20px 40px 40px;border-top: 100px solid #fff;}
}
完整代码下载
完整代码下载