321 lines
5.3 KiB
Plaintext
321 lines
5.3 KiB
Plaintext
/* 页面与滚动容器 */
|
||
.page {
|
||
background-color: #f7f7f7;
|
||
width: 100%;
|
||
min-height: 100vh;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.content {
|
||
flex: 1;
|
||
padding: 24rpx 24rpx 160rpx; /* bottom 预留给固定底部栏 */
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.no-scrollbar::-webkit-scrollbar {
|
||
width: 0;
|
||
height: 0;
|
||
display: none;
|
||
}
|
||
|
||
/* 通用卡片 */
|
||
.card {
|
||
background-color: #ffffff;
|
||
border-radius: 16rpx;
|
||
padding: 24rpx;
|
||
box-shadow: 0 8rpx 24rpx rgba(0,0,0,0.04);
|
||
}
|
||
|
||
.card + .card {
|
||
margin-top: 20rpx;
|
||
}
|
||
|
||
/* 商品信息卡片 */
|
||
.product {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: stretch;
|
||
gap: 20rpx;
|
||
}
|
||
|
||
.cover {
|
||
width: 260rpx;
|
||
height: 180rpx;
|
||
border-radius: 12rpx;
|
||
flex-shrink: 0;
|
||
background: #f2f2f2;
|
||
}
|
||
|
||
.info {
|
||
display: flex;
|
||
flex: 1;
|
||
flex-direction: column;
|
||
justify-content: space-between;
|
||
min-width: 0; /* 使多行省略生效 */
|
||
}
|
||
|
||
.title {
|
||
font-size: 32rpx;
|
||
font-weight: 600;
|
||
color: #1f1f1f;
|
||
line-height: 48rpx;
|
||
}
|
||
|
||
.ellipsis-2 {
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 2;
|
||
-webkit-box-orient: vertical;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.price-line {
|
||
display: flex;
|
||
align-items: baseline;
|
||
gap: 12rpx;
|
||
margin-top: 8rpx;
|
||
}
|
||
|
||
.price-now {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
color: #ff5a1a; /* 与主题橙统一 */
|
||
line-height: 1;
|
||
}
|
||
|
||
.price-origin {
|
||
font-size: 26rpx;
|
||
color: #9f9f9f;
|
||
text-decoration: line-through; /* 用样式处理中划线 */
|
||
}
|
||
|
||
/* 通用行(键值对) */
|
||
.row {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.row-left {
|
||
font-size: 30rpx;
|
||
color: #4a4a4a;
|
||
}
|
||
|
||
.row-right {
|
||
font-size: 30rpx;
|
||
color: #1f1f1f;
|
||
}
|
||
|
||
.accent {
|
||
color: #ff5a1a;
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* 支付方式 */
|
||
.pay {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.pay-left {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16rpx;
|
||
}
|
||
|
||
.pay-icon {
|
||
width: 56rpx;
|
||
height: 56rpx;
|
||
border-radius: 8rpx;
|
||
}
|
||
|
||
.pay-text {
|
||
font-size: 30rpx;
|
||
color: #333333;
|
||
}
|
||
|
||
.pay-right {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
/* 固定底部 */
|
||
.footer {
|
||
position: fixed;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: #ffffff;
|
||
box-shadow: 0 -6rpx 20rpx rgba(0,0,0,0.06);
|
||
padding-bottom: env(safe-area-inset-bottom);
|
||
/* 兼容旧版 iOS */
|
||
padding-bottom: constant(safe-area-inset-bottom);
|
||
}
|
||
|
||
.footer-inner {
|
||
height: 120rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 24rpx;
|
||
padding: 0 24rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.to-pay {
|
||
font-size: 28rpx;
|
||
color: #666666;
|
||
}
|
||
|
||
.to-pay-amount {
|
||
font-size: 36rpx;
|
||
color: #ff5a1a;
|
||
font-weight: 700;
|
||
margin-left: 8rpx;
|
||
}
|
||
|
||
/* 支付按钮:使用 view,自定义橙色主题 */
|
||
.btn-pay {
|
||
min-width: 260rpx;
|
||
height: 88rpx;
|
||
border-radius: 999rpx;
|
||
background: linear-gradient(180deg, #ffa64a 0%, #ff8d1a 100%);
|
||
color: #ffffff;
|
||
font-size: 30rpx;
|
||
font-weight: 600;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
box-shadow: 0 6rpx 14rpx rgba(255, 141, 26, 0.35);
|
||
active-opacity: 0.85;
|
||
}
|
||
|
||
/* 遮罩层 */
|
||
.page-mask {
|
||
position: fixed;
|
||
inset: 0;
|
||
background-color: rgba(0, 0, 0, 0.35);
|
||
z-index: 9999;
|
||
}
|
||
|
||
/* 旧样式中可能用到的零散类,若无依赖可移除 */
|
||
.ml-11 { margin-left: 20rpx; }
|
||
.mt-15 { margin-top: 28rpx; }
|
||
.ml-1 { margin-left: 2rpx; }
|
||
|
||
|
||
|
||
/* 入口小字 */
|
||
.notice-entry {
|
||
margin-right: 16rpx;
|
||
font-size: 24rpx;
|
||
color: #8a8a8a;
|
||
text-decoration: underline;
|
||
}
|
||
|
||
/* 弹窗遮罩 */
|
||
.modal-mask {
|
||
position: fixed;
|
||
z-index: 999; /* 确保在你的 .footer 与其他遮罩之上 */
|
||
inset: 0;
|
||
background: rgba(0,0,0,0.45);
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
padding: 40rpx;
|
||
}
|
||
|
||
/* 弹窗容器 */
|
||
.modal {
|
||
width: 86%;
|
||
max-width: 640rpx;
|
||
max-height: 70vh;
|
||
background: #fff;
|
||
border-radius: 24rpx;
|
||
overflow: hidden;
|
||
box-shadow: 0 12rpx 40rpx rgba(0,0,0,0.18);
|
||
}
|
||
|
||
/* 标题 */
|
||
.modal-title {
|
||
padding: 28rpx 32rpx 12rpx;
|
||
font-size: 32rpx;
|
||
font-weight: 600;
|
||
color: #222;
|
||
}
|
||
|
||
/* 内容区滚动 */
|
||
.modal-body {
|
||
max-height: 48vh;
|
||
padding: 8rpx 32rpx 24rpx;
|
||
}
|
||
rich-text {
|
||
padding-bottom: 32rpx;
|
||
}
|
||
|
||
/* 富文本默认样式优化 */
|
||
.modal-body rich-text {
|
||
display: block;
|
||
font-size: 26rpx;
|
||
line-height: 1.75;
|
||
color: #444;
|
||
}
|
||
.modal-body h3 { font-size: 28rpx; margin: 18rpx 0 8rpx; color: #222; }
|
||
.modal-body p { margin: 10rpx 0; }
|
||
.modal-body ul, .modal-body ol { margin: 10rpx 0 10rpx 28rpx; }
|
||
.modal-body a { color: #1677ff; word-break: break-all; }
|
||
|
||
/* 底部按钮区 */
|
||
.modal-actions {
|
||
padding: 20rpx 24rpx 28rpx;
|
||
}
|
||
.btn-primary {
|
||
width: 100%;
|
||
height: 84rpx;
|
||
line-height: 84rpx;
|
||
text-align: center;
|
||
border-radius: 16rpx;
|
||
background: #ff8a00; /* 你的主色调(可换成项目变量) */
|
||
color: #fff;
|
||
font-size: 30rpx;
|
||
font-weight: 600;
|
||
}
|
||
.btn-primary:active {
|
||
opacity: 0.85;
|
||
}
|
||
|
||
.notice-icon {
|
||
position: absolute;
|
||
top: 20rpx;
|
||
right: 20rpx;
|
||
z-index: 10;
|
||
display: flex;
|
||
align-items: center;
|
||
background: rgba(255, 255, 255, 0.92);
|
||
border-radius: 30rpx;
|
||
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15);
|
||
padding: 6rpx 14rpx;
|
||
}
|
||
|
||
.notice-icon-img {
|
||
width: 34rpx;
|
||
height: 34rpx;
|
||
margin-right: 8rpx;
|
||
}
|
||
|
||
.notice-icon-text {
|
||
font-size: 24rpx;
|
||
color: #333;
|
||
}
|
||
.notice-icon:active {
|
||
opacity: 0.85;
|
||
}
|
||
|
||
::-webkit-scrollbar {
|
||
width: 0;
|
||
height: 0;
|
||
background: transparent;
|
||
}
|
||
|