324 lines
5.9 KiB
CSS
324 lines
5.9 KiB
CSS
/* ============ 智能设备聚合首页 样式(还原设计稿 device 页) ============ */
|
||
page {
|
||
background: #f5f6f7;
|
||
}
|
||
|
||
.device-page {
|
||
min-height: 100vh;
|
||
background: #f5f6f7;
|
||
}
|
||
|
||
/* 内容体:去掉渐变续色;保留 12rpx 顶部间距(Hero 与页头之间的空隙,纯页面底色)。 */
|
||
.device-body {
|
||
padding-top: 12rpx;
|
||
}
|
||
|
||
/* ===== 头部:居中标题 ===== */
|
||
.device-header {
|
||
padding-left: 30rpx;
|
||
padding-right: 30rpx;
|
||
/* 不要红头,保持页面底色 */
|
||
background: #f5f6f7;
|
||
}
|
||
|
||
.title-bar {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
height: 88rpx;
|
||
}
|
||
|
||
.page-title {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
color: #1a1a1a;
|
||
letter-spacing: 1rpx;
|
||
}
|
||
|
||
/* ===== Hero:红橙渐变底 + 叠加文案 ===== */
|
||
.device-hero {
|
||
position: relative;
|
||
/* margin-top 移到 .device-body 的 padding-top,避免 margin 塌陷露出灰底白条 */
|
||
margin: 0 30rpx;
|
||
height: 360rpx;
|
||
border-radius: 24rpx;
|
||
overflow: hidden;
|
||
/* 图片加载失败时露出的红橙渐变兜底 */
|
||
background: linear-gradient(120deg, #f4141c 0%, #ff8758 100%);
|
||
box-shadow: 0 12rpx 30rpx rgba(244, 20, 28, 0.18);
|
||
}
|
||
|
||
/* 轮播底图 */
|
||
.hero-swiper {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
z-index: 0;
|
||
}
|
||
|
||
.hero-img {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
}
|
||
|
||
/* 文字可读性遮罩:左深右透 */
|
||
.hero-mask {
|
||
position: absolute;
|
||
inset: 0;
|
||
z-index: 1;
|
||
background: linear-gradient(100deg, rgba(120, 20, 14, 0.7) 0%, rgba(180, 40, 24, 0.34) 52%, rgba(255, 135, 88, 0.06) 100%);
|
||
}
|
||
|
||
.hero-overlay {
|
||
position: relative;
|
||
z-index: 2;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
padding: 40rpx 32rpx;
|
||
}
|
||
|
||
.hero-greeting {
|
||
font-size: 30rpx;
|
||
font-weight: 700;
|
||
color: #fff;
|
||
}
|
||
|
||
.hero-greeting-sub {
|
||
margin-top: 6rpx;
|
||
font-size: 22rpx;
|
||
color: rgba(255, 255, 255, 0.85);
|
||
}
|
||
|
||
.hero-title {
|
||
margin-top: 12rpx;
|
||
font-size: 46rpx;
|
||
font-weight: 800;
|
||
color: #fff;
|
||
letter-spacing: -1rpx;
|
||
}
|
||
|
||
.hero-sub {
|
||
margin-top: 12rpx;
|
||
font-size: 24rpx;
|
||
color: rgba(255, 255, 255, 0.9);
|
||
}
|
||
|
||
/* 登录前双按钮 */
|
||
.hero-actions {
|
||
display: flex;
|
||
margin-top: 28rpx;
|
||
}
|
||
|
||
.hero-btn {
|
||
height: 64rpx;
|
||
padding: 0 36rpx;
|
||
border-radius: 999rpx;
|
||
font-size: 26rpx;
|
||
font-weight: 700;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.hero-btn.primary {
|
||
background: #fff;
|
||
color: #ef111b;
|
||
}
|
||
|
||
.hero-btn.ghost {
|
||
margin-left: 20rpx;
|
||
border: 2rpx solid rgba(255, 255, 255, 0.9);
|
||
color: #fff;
|
||
}
|
||
|
||
/* 登录后 4 特性标签 */
|
||
.hero-tags {
|
||
display: flex;
|
||
margin-top: 28rpx;
|
||
}
|
||
|
||
.hero-tag {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
margin-right: 36rpx;
|
||
}
|
||
|
||
.hero-tag-icon {
|
||
width: 56rpx;
|
||
height: 56rpx;
|
||
border-radius: 50%;
|
||
background: rgba(255, 255, 255, 0.22);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.hero-tag-label {
|
||
margin-top: 10rpx;
|
||
font-size: 20rpx;
|
||
color: #fff;
|
||
}
|
||
|
||
/* ===== 设备分类卡:2 列网格 ===== */
|
||
.cat-grid {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
padding: 24rpx 30rpx 0;
|
||
}
|
||
|
||
.cat-card {
|
||
position: relative;
|
||
overflow: hidden;
|
||
width: 336rpx;
|
||
height: 240rpx;
|
||
margin-bottom: 18rpx;
|
||
border-radius: 20rpx;
|
||
padding: 24rpx;
|
||
background: linear-gradient(135deg, #fbf2f0 0%, #fdf8f7 100%);
|
||
box-shadow: 0 6rpx 18rpx rgba(0, 0, 0, 0.04);
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 右下角产品几何块 */
|
||
.cat-pic {
|
||
position: absolute;
|
||
right: 14rpx;
|
||
bottom: 14rpx;
|
||
width: 130rpx;
|
||
height: 130rpx;
|
||
z-index: 0;
|
||
border-radius: 16rpx;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.cat-pic-img {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
}
|
||
|
||
.illust-access { background: linear-gradient(180deg, #2c3440 0%, #4a5566 100%); }
|
||
.illust-parking { background: linear-gradient(180deg, #9ee7cf 0%, #62c99b 100%); }
|
||
.illust-guard { background: linear-gradient(180deg, #eef1f4 0%, #c9d2dc 100%); }
|
||
.illust-environment { background: linear-gradient(180deg, #2a2f3a 0%, #525a6b 100%); }
|
||
.illust-monitor { background: linear-gradient(180deg, #f0f2f5 0%, #cdd4dd 100%); }
|
||
.illust-water { background: linear-gradient(180deg, #eaf4ff 0%, #bcd8f5 100%); }
|
||
.illust-lighting { background: linear-gradient(180deg, #ffe9b0 0%, #f4c45a 100%); }
|
||
.illust-scene { background: linear-gradient(180deg, #ffe2e0 0%, #ffb9b3 100%); }
|
||
|
||
.cat-text {
|
||
position: relative;
|
||
z-index: 1;
|
||
display: flex;
|
||
flex-direction: column;
|
||
max-width: 220rpx;
|
||
}
|
||
|
||
.cat-title {
|
||
font-size: 30rpx;
|
||
font-weight: 700;
|
||
color: #1a1a1a;
|
||
letter-spacing: 1rpx;
|
||
}
|
||
|
||
.cat-desc {
|
||
margin-top: 8rpx;
|
||
font-size: 22rpx;
|
||
line-height: 1.4;
|
||
color: #9a9a9a;
|
||
}
|
||
|
||
/* 底部行:锁 / 链接 */
|
||
.cat-foot {
|
||
position: absolute;
|
||
left: 24rpx;
|
||
bottom: 24rpx;
|
||
z-index: 1;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.foot-lock {
|
||
margin-left: 6rpx;
|
||
font-size: 21rpx;
|
||
color: #b8b8b8;
|
||
}
|
||
|
||
.foot-action {
|
||
margin-left: 6rpx;
|
||
font-size: 22rpx;
|
||
font-weight: 600;
|
||
color: #ef111b;
|
||
}
|
||
|
||
/* ===== 登录后底部统计条 ===== */
|
||
.stat-bar {
|
||
display: flex;
|
||
align-items: center;
|
||
margin: 24rpx 30rpx 0;
|
||
padding: 24rpx 28rpx;
|
||
border-radius: 20rpx;
|
||
background: linear-gradient(135deg, #fff3f1 0%, #fff9f8 100%);
|
||
box-shadow: 0 6rpx 18rpx rgba(0, 0, 0, 0.04);
|
||
}
|
||
|
||
.stat-icon {
|
||
flex-shrink: 0;
|
||
width: 56rpx;
|
||
height: 56rpx;
|
||
border-radius: 50%;
|
||
background: linear-gradient(135deg, #ff5e61 0%, #ef111b 100%);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.stat-text {
|
||
flex: 1;
|
||
min-width: 0;
|
||
display: flex;
|
||
flex-direction: column;
|
||
margin-left: 18rpx;
|
||
}
|
||
|
||
.stat-title {
|
||
font-size: 26rpx;
|
||
font-weight: 700;
|
||
color: #1a1a1a;
|
||
}
|
||
|
||
.stat-sub {
|
||
margin-top: 6rpx;
|
||
font-size: 20rpx;
|
||
color: #999;
|
||
}
|
||
|
||
.stat-num {
|
||
flex-shrink: 0;
|
||
display: flex;
|
||
align-items: baseline;
|
||
}
|
||
|
||
.stat-value {
|
||
font-size: 48rpx;
|
||
font-weight: 800;
|
||
color: #ef111b;
|
||
}
|
||
|
||
.stat-unit {
|
||
margin-left: 6rpx;
|
||
font-size: 20rpx;
|
||
color: #999;
|
||
}
|
||
|
||
/* 底栏占位 */
|
||
.tabbar-spacer {
|
||
height: 160rpx;
|
||
}
|