如何制作css bat
CSS Bat 制作方法
制作一个CSS蝙蝠可以通过纯CSS代码实现,利用::before和::after伪元素结合边框和变换属性来绘制蝙蝠形状。以下是具体实现步骤:
HTML结构
<div class="bat"></div>
CSS样式
.bat {
width: 100px;
height: 50px;
position: relative;
margin: 50px auto;
}
.bat::before, .bat::after {
content: "";
position: absolute;
width: 0;
height: 0;
}
.bat::before {
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 80px solid #333;
top: -80px;
left: 0;
transform: rotate(15deg);
}
.bat::after {
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 80px solid #333;
top: -80px;
right: 0;
transform: rotate(-15deg);
}
动画效果增强
为蝙蝠添加翅膀扇动的动画效果,可以通过关键帧动画实现:
.bat::before {
animation: flap-left 1s infinite alternate;
}
.bat::after {
animation: flap-right 1s infinite alternate;
}
@keyframes flap-left {
from { transform: rotate(15deg); }
to { transform: rotate(45deg); }
}
@keyframes flap-right {
from { transform: rotate(-15deg); }
to { transform: rotate(-45deg); }
}
添加细节
完善蝙蝠的头部和身体部分,使整体更逼真:
.bat {
background: #222;
border-radius: 50% 50% 0 0;
}
.bat::before, .bat::after {
border-bottom-color: #222;
z-index: -1;
}
响应式调整
通过媒体查询适配不同屏幕尺寸:
@media (max-width: 600px) {
.bat {
width: 60px;
height: 30px;
}
.bat::before, .bat::after {
border-left-width: 30px;
border-right-width: 30px;
border-bottom-width: 50px;
top: -50px;
}
}
完整代码示例
整合后的完整CSS蝙蝠代码如下:
<!DOCTYPE html>
<html>
<head>
<style>
.bat {
width: 100px;
height: 50px;
position: relative;
margin: 100px auto;
background: #222;
border-radius: 50% 50% 0 0;
}
.bat::before, .bat::after {
content: "";
position: absolute;
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 80px solid #222;
top: -80px;
z-index: -1;
animation-duration: 0.8s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.bat::before {
left: 0;
transform: rotate(15deg);
animation-name: flap-left;
}
.bat::after {
right: 0;
transform: rotate(-15deg);
animation-name: flap-right;
}
@keyframes flap-left {
from { transform: rotate(15deg); }
to { transform: rotate(45deg); }
}
@keyframes flap-right {
from { transform: rotate(-15deg); }
to { transform: rotate(-45deg); }
}
</style>
</head>
<body>
<div class="bat"></div>
</body>
</html>






