css制作信封
使用CSS制作信封效果
通过CSS的边框、阴影和伪元素可以模拟一个信封的展开效果。以下是一个简单的实现方法:

<div class="envelope"></div>
.envelope {
width: 200px;
height: 120px;
background-color: #f9f3e9;
position: relative;
border: 1px solid #d4c9b8;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.envelope::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
border-bottom: 60px solid #e8d5b5;
border-left: 100px solid transparent;
border-right: 100px solid transparent;
transform-origin: top;
transform: rotateX(0deg);
transition: transform 0.5s;
}
.envelope:hover::before {
transform: rotateX(180deg);
}
信封展开动画
添加悬停动画使信封看起来像被打开:

.envelope {
perspective: 1000px;
}
.envelope::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 20px;
background-color: #d4c9b8;
border-radius: 0 0 5px 5px;
}
添加信纸效果
在信封内创建信纸层:
<div class="envelope">
<div class="letter"></div>
</div>
.letter {
position: absolute;
bottom: 10px;
left: 10px;
right: 10px;
height: 100px;
background-color: white;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
transition: all 0.3s;
}
.envelope:hover .letter {
transform: translateY(-40px);
height: 140px;
}
完整信封样式
结合所有元素创建更真实的效果:
.envelope {
width: 220px;
height: 150px;
background: #f5e7d0;
border-radius: 5px;
position: relative;
box-shadow: 0 3px 10px rgba(0,0,0,0.2);
margin: 50px auto;
cursor: pointer;
}
.envelope::before {
content: '';
position: absolute;
top: 0;
width: 0;
height: 0;
border-left: 110px solid transparent;
border-right: 110px solid transparent;
border-top: 75px solid #e8cfa6;
transform-origin: top;
z-index: 2;
transition: all 0.3s ease-in-out;
transform: rotateX(0deg);
}
.envelope:hover::before {
transform: rotateX(180deg);
}
.letter {
position: absolute;
bottom: 10px;
left: 20px;
right: 20px;
height: 120px;
background: white;
transition: all 0.3s ease-in-out;
box-shadow: 0 0 5px rgba(0,0,0,0.1);
padding: 10px;
box-sizing: border-box;
}
.envelope:hover .letter {
transform: translateY(-50px);
height: 170px;
}
这些CSS技巧可以组合使用来创建各种信封效果,通过调整颜色、尺寸和动画参数可获得不同的视觉效果。






