148 lines
4.8 KiB
CSS
148 lines
4.8 KiB
CSS
|
/* ========== 全局 ========== */
|
||
|
*{
|
||
|
margin:0;padding:0;box-sizing:border-box;
|
||
|
font-family:'PingFang SC','Helvetica Neue',Arial,sans-serif;
|
||
|
}
|
||
|
body{
|
||
|
background:#f5f5f5;
|
||
|
color:#333;
|
||
|
max-width:500px;
|
||
|
margin:0 auto;
|
||
|
position:relative;
|
||
|
padding-bottom:30px;
|
||
|
}
|
||
|
|
||
|
/* ========== 轮播图 ========== */
|
||
|
.swiper-container{
|
||
|
width:100%;height:375px;position:relative;overflow:hidden;
|
||
|
}
|
||
|
.swiper-wrapper{display:flex;transition:transform .3s;}
|
||
|
.swiper-slide{flex:0 0 100%;height:375px;}
|
||
|
.swiper-slide img{width:100%;height:100%;object-fit:contain;background:#fff;}
|
||
|
|
||
|
.swiper-pagination{
|
||
|
position:absolute;bottom:10px;left:50%;
|
||
|
transform:translateX(-50%);display:flex;gap:6px;
|
||
|
}
|
||
|
.swiper-dot{
|
||
|
width:8px;height:8px;border-radius:50%;
|
||
|
background:rgba(255,255,255,.5);transition:all .3s;
|
||
|
}
|
||
|
.swiper-dot.active{background:#ff5000;width:16px;border-radius:4px;}
|
||
|
|
||
|
/* ========== 商品信息 ========== */
|
||
|
.product-info{background:#fff;padding:15px;margin-bottom:10px;}
|
||
|
.price-row{display:flex;align-items:center;margin-bottom:12px;}
|
||
|
|
||
|
.current-price{color:#ff5000;font-size:28px;font-weight:bold;}
|
||
|
.current-price::before{content:"¥";font-size:18px;}
|
||
|
|
||
|
.original-price{
|
||
|
color:#999;font-size:16px;text-decoration:line-through;margin-left:8px;
|
||
|
}
|
||
|
.original-price::before{content:"¥";}
|
||
|
.title{font-size:18px;font-weight:bold;line-height:1.4;margin-bottom:10px;}
|
||
|
|
||
|
/* 促销行 */
|
||
|
.promo-row{display:flex;align-items:center;gap:6px;margin-top:6px;}
|
||
|
.promo-tag{
|
||
|
flex-shrink:0;
|
||
|
display:inline-block;
|
||
|
background:linear-gradient(90deg,#ff2c2c,#ff6b22);
|
||
|
color:#fff;font-size:12px;padding:2px 6px;border-radius:2px;
|
||
|
}
|
||
|
.promo-box{
|
||
|
display:inline-block;font-size:13px;padding:2px 6px;
|
||
|
border-radius:4px;font-weight:600;line-height:1.2;white-space:nowrap;
|
||
|
}
|
||
|
.promo-box.drop,
|
||
|
.promo-box.sold{
|
||
|
background:linear-gradient(90deg,#ff7e00,#ff5000);
|
||
|
color:#fff;
|
||
|
}
|
||
|
|
||
|
/* ========== 拼单列表 ========== */
|
||
|
.group-buying{background:#fff;padding:15px;margin-bottom:10px;position:relative;overflow:hidden;}
|
||
|
.section-title{
|
||
|
font-size:16px;font-weight:bold;margin-bottom:12px;position:relative;padding-left:10px;
|
||
|
}
|
||
|
.section-title::before{
|
||
|
content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
|
||
|
width:3px;height:16px;background:#ff5000;border-radius:2px;
|
||
|
}
|
||
|
|
||
|
.group-users{height:120px;position:relative;overflow:hidden;}
|
||
|
.user-list{position:absolute;top:0;left:0;width:100%;transition:transform .5s ease;}
|
||
|
|
||
|
.user-item{
|
||
|
display:flex;align-items:center;padding:8px 0;border-bottom:1px solid #f5f5f5;
|
||
|
}
|
||
|
.user-item:last-child{border-bottom:none;}
|
||
|
|
||
|
.user-avatar{
|
||
|
width:40px;height:40px;border-radius:50%;background:#f5f5f5;
|
||
|
display:flex;align-items:center;justify-content:center;margin-right:10px;
|
||
|
color:#999;font-size:20px;
|
||
|
}
|
||
|
|
||
|
.user-info{flex:1;}
|
||
|
.user-name{font-size:15px;font-weight:bold;margin-bottom:4px;}
|
||
|
.user-status{font-size:13px;color:#666;}
|
||
|
|
||
|
.countdown{
|
||
|
display:inline-block;background:#ff5000;color:#fff;
|
||
|
padding:1px 4px;border-radius:2px;margin-left:5px;
|
||
|
}
|
||
|
|
||
|
.buy-btn{
|
||
|
background:linear-gradient(90deg,#ff2c2c,#ff6b22);
|
||
|
color:#fff;border:none;border-radius:4px;padding:6px 15px;
|
||
|
font-size:14px;font-weight:bold;cursor:pointer;
|
||
|
}
|
||
|
|
||
|
/* ========== 底部操作栏 ========== */
|
||
|
.action-bar{
|
||
|
position:fixed;inset-inline:0;bottom:0;max-width:500px;margin:0 auto;
|
||
|
background:#fff;display:flex;height:60px;
|
||
|
box-shadow:0 -2px 10px rgba(0,0,0,.1);z-index:100;
|
||
|
}
|
||
|
.action-btn{
|
||
|
flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
|
||
|
font-size:12px;color:#666;
|
||
|
}
|
||
|
.action-btn i{font-size:20px;margin-bottom:4px;}
|
||
|
|
||
|
.purchase-btn{flex:2;display:flex;}
|
||
|
.btn-single,
|
||
|
.btn-group{
|
||
|
flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
|
||
|
gap:2px;border:none;cursor:pointer;
|
||
|
}
|
||
|
.btn-single{background:#ff9500;color:#fff;}
|
||
|
.btn-group {background:#ff5000;color:#fff;}
|
||
|
|
||
|
.btn-price{font-size:18px;font-weight:700;line-height:1;}
|
||
|
.btn-label{font-size:12px;line-height:1;}
|
||
|
|
||
|
/* ========== 支付弹窗 ========== */
|
||
|
.payment-overlay{
|
||
|
position:fixed;inset:0;z-index:9999;
|
||
|
background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;
|
||
|
backdrop-filter:blur(2px);
|
||
|
}
|
||
|
.payment-modal{
|
||
|
width:300px;max-width:90vw;padding:26px 28px 30px;background:#fff;
|
||
|
border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.18);
|
||
|
font-size:14px;line-height:1.45;text-align:center;
|
||
|
}
|
||
|
.payment-modal h3{font-size:18px;margin:0 0 14px;color:#333;}
|
||
|
.payment-modal p{margin:6px 0;color:#555;word-break:break-all;}
|
||
|
.payment-modal .copyable{color:#ff5000;cursor:pointer;text-decoration:underline;}
|
||
|
|
||
|
.modal-buttons{margin-top:22px;display:flex;gap:12px;}
|
||
|
.modal-buttons button{
|
||
|
flex:1;padding:8px 0;border-radius:6px;font-size:14px;cursor:pointer;border:none;
|
||
|
}
|
||
|
.confirm-btn{background:#ff5000;color:#fff;}
|
||
|
.cancel-btn{background:#f2f3f5;color:#333;}
|