css制作灯笼
使用CSS制作灯笼效果
通过CSS的盒模型、阴影和动画属性可以创建一个动态的灯笼效果。以下是一个完整的实现方案:

HTML结构
<div class="lantern">
<div class="lantern-body"></div>
<div class="lantern-light"></div>
<div class="lantern-tassel"></div>
</div>
CSS样式
.lantern {
position: relative;
width: 100px;
height: 150px;
margin: 50px auto;
}
.lantern-body {
width: 100%;
height: 120px;
background-color: #f00;
border-radius: 50% 50% 10% 10%;
box-shadow:
0 0 20px #f00,
0 0 40px rgba(255, 0, 0, 0.5);
position: relative;
}
.lantern-body::before {
content: "";
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
width: 30px;
height: 10px;
background-color: #ff0;
border-radius: 5px;
}
.lantern-light {
position: absolute;
top: 40px;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 60px;
background-color: #ff0;
border-radius: 50%;
opacity: 0.8;
animation: flicker 2s infinite alternate;
box-shadow: 0 0 30px #ff0;
}
.lantern-tassel {
position: absolute;
bottom: -60px;
left: 50%;
transform: translateX(-50%);
width: 4px;
height: 50px;
background-color: #f00;
}
.lantern-tassel::after {
content: "";
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 20px;
height: 20px;
background-color: #ff0;
border-radius: 50%;
}
@keyframes flicker {
0% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
100% { opacity: 1; transform: translateX(-50%) scale(1.05); }
}
实现要点
红色灯笼主体使用圆角边框实现灯笼的弧形轮廓,通过box-shadow添加发光效果。黄色灯笼光使用绝对定位居中,添加闪烁动画增强真实感。

灯笼顶部的横杆使用伪元素实现,底部的流苏通过另一个伪元素制作。动画效果使用关键帧实现灯笼光的忽明忽暗变化。
扩展改进
可以添加更多装饰元素如灯笼上的文字或图案。调整动画参数可以改变闪烁频率和强度。使用CSS变量可以方便地修改灯笼颜色和尺寸。






