纯Css制作收据
使用纯CSS制作收据效果
通过CSS的边框、阴影和伪元素可以模拟纸质收据的锯齿边缘和打印效果。以下是实现方法:
HTML结构
<div class="receipt">
<h3>购物收据</h3>
<div class="receipt-item">
<span>商品A</span>
<span>$12.99</span>
</div>
<div class="receipt-item">
<span>商品B</span>
<span>$8.50</span>
</div>
<div class="receipt-total">
<span>总计</span>
<span>$21.49</span>
</div>
</div>
CSS样式
.receipt {
width: 300px;
padding: 20px;
background: white;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
position: relative;
font-family: 'Courier New', monospace;
}
.receipt::before {
content: "";
position: absolute;
left: 0;
right: 0;
top: -5px;
height: 10px;
background:
linear-gradient(45deg, transparent 33.3%, white 33.3%, white 66.6%, transparent 66.6%),
linear-gradient(-45deg, transparent 33.3%, white 33.3%, white 66.6%, transparent 66.6%);
background-size: 20px 40px;
}
.receipt-item {
display: flex;
justify-content: space-between;
padding: 8px 0;
border-bottom: 1px dashed #ccc;
}
.receipt-total {
display: flex;
justify-content: space-between;
padding: 12px 0;
font-weight: bold;
border-top: 2px solid #333;
}
增强收据真实感的效果
通过添加打印纹理和褪色效果让收据更逼真:
.receipt {
background:
linear-gradient(rgba(255,255,255,0.8), rgba(255,255,255,0.8)),
repeating-linear-gradient(
0deg,
rgba(0,0,0,0.03),
rgba(0,0,0,0.03) 1px,
transparent 1px,
transparent 4px
);
color: #333;
}
.receipt h3 {
text-align: center;
margin-bottom: 20px;
font-size: 1.2em;
text-decoration: underline;
}
响应式收据设计
使收据在不同设备上保持合适尺寸:
@media (max-width: 400px) {
.receipt {
width: 90%;
margin: 0 auto;
padding: 15px;
}
.receipt-item {
font-size: 0.9em;
}
}
添加撕切线效果
在收据底部增加模拟撕切线:

.receipt::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: -5px;
height: 10px;
background:
linear-gradient(45deg, transparent 33.3%, white 33.3%, white 66.6%, transparent 66.6%),
linear-gradient(-45deg, transparent 33.3%, white 33.3%, white 66.6%, transparent 66.6%);
background-size: 20px 40px;
}
这些CSS技巧组合可以创建出逼真的收据效果,无需任何JavaScript或图像。通过调整颜色、间距和阴影参数,可以进一步自定义外观以适应不同场景需求。


