Files
SmartPetFeeder_STM32/wex_small/pages/index/index.wxss

530 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**index.wxss**/
page {
height: 100vh;
display: flex;
flex-direction: column;
background: linear-gradient(180deg, #f5f7fa 0%, #e8ecf1 100%);
padding: 0;
margin: 0;
/* 页面整体底部预留安全区域,避免内容被遮挡 */
padding-bottom: env(safe-area-inset-bottom);
box-sizing: border-box;
}
/* 自定义导航栏容器 */
.custom-nav {
width: 100%;
background: #FFF;
position: fixed;
top: 0;
left: 0;
z-index: 999;
box-shadow: 0 1rpx 0 rgba(0,0,0,0.05);
}
/* 标题栏区域 */
.title-bar {
display: flex;
align-items: center;
justify-content: center;
position: relative;
width: 100%;
}
.nav-title {
font-size: 17px;
font-weight: bold;
color: #000;
}
/* 水位状态颜色 */
.water-level-1 {
color: #07c160;
font-weight: 500;
}
.water-level-0 {
color: #ee0a24;
font-weight: 500;
}
/* 空值样式 */
.empty-value {
color: #a8b2b8 !important;
}
.scrollarea {
flex: 1;
overflow-y: auto;
width: 100%;
/* 滚动区域底部预留更多空间,避免内容贴底 */
padding-bottom: 20rpx;
box-sizing: border-box;
/* 为自定义导航栏预留顶部空间 */
padding-top: var(--navBarHeight);
}
.container {
padding: 0 24rpx;
background: transparent;
min-height: 100%; /* 替换100vh避免高度溢出 */
width: 100%;
box-sizing: border-box;
margin: 0 auto;
/* 新增:容器上下留白,优化整体呼吸感 */
padding-top: 16rpx;
padding-bottom: 40rpx;
}
/* 区域样式 - 统一间距(微调间距,更协调) */
.section {
margin-bottom: 40rpx; /* 原36rpx微调增加呼吸感 */
padding: 0 16rpx;
width: 100%;
box-sizing: border-box;
}
.section-header {
display: flex;
align-items: center;
padding: 24rpx 0 18rpx; /* 原28rpx 0 20rpx微调更紧凑 */
margin-bottom: 12rpx; /* 原8rpx增加标题与内容间距 */
}
.section-title {
font-size: 34rpx;
font-weight: 600;
color: #2c3e50;
margin-left: 14rpx;
letter-spacing: 0.5rpx;
}
.setting-btn {
margin-left: auto;
border-radius: 10rpx;
font-size: 26rpx;
padding: 0 28rpx;
height: 60rpx;
line-height: 60rpx;
/* 新增:按钮最小宽度,避免文字挤压 */
min-width: 120rpx;
text-align: center;
}
/* 数据卡片 - 统一尺寸 */
.cell-title-wrap {
display: flex;
align-items: center;
gap: 18rpx;
width: 100%;
}
.data-label {
font-size: 30rpx;
color: #8a92a0;
font-weight: 500;
}
.data-value {
font-size: 36rpx;
font-weight: 600;
color: #2c3e50;
font-feature-settings: "tnum";
letter-spacing: -0.5rpx;
}
.mode-cell {
margin-top: 32rpx; /* 原28rpx微调间距 */
width: 100%;
}
/* 控制按钮网格 - 优化尺寸和间距(更协调) */
.control-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32rpx; /* 原28rpx增加按钮间距 */
padding: 24rpx 8rpx 32rpx; /* 原28rpx 8rpx上下间距微调 */
width: 100%;
box-sizing: border-box;
}
.control-grid .control-btn:nth-child(3) {
grid-column: 1 / -1;
}
.control-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 14rpx;
border-radius: 28rpx;
padding: 52rpx 24rpx; /* 原56rpx微调内边距 */
margin: 0;
font-size: 30rpx;
font-weight: 500;
letter-spacing: 0.5rpx;
box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.06);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border: none;
position: relative;
overflow: hidden;
width: 100%;
height: 190rpx; /* 原200rpx微调高度更协调 */
box-sizing: border-box;
}
.control-btn::after {
display: none;
}
.control-btn:active {
transform: scale(0.95);
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
}
.control-btn[type="primary"] {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #ffffff;
box-shadow: 0 8rpx 24rpx rgba(102, 126, 234, 0.3);
}
.control-btn[type="info"] {
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
color: #ffffff;
box-shadow: 0 8rpx 24rpx rgba(79, 172, 254, 0.3);
}
.refresh-btn {
background: #ffffff !important;
color: #2c3e50 !important;
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04) !important;
border: 2rpx solid #e8ecf1;
}
.refresh-btn:active {
background: #f5f7fa !important;
}
/* 模式切换单元格 */
.mode-switch-cell {
margin-top: 16rpx; /* 原8rpx增加与按钮区间距 */
width: 100%;
}
/* 设置弹窗 - 全屏宽度优化(核心:安全区域适配) */
.settings-popup {
display: flex;
flex-direction: column;
height: 100%;
background: #ffffff;
border-radius: 36rpx 36rpx 0 0;
width: 100%;
box-sizing: border-box;
/* 新增:弹窗底部预留安全区域 */
padding-bottom: env(safe-area-inset-bottom);
}
.popup-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 36rpx 32rpx 32rpx; /* 原40rpx 32rpx 36rpx微调更紧凑 */
border-bottom: 1rpx solid #f0f2f5;
width: 100%;
box-sizing: border-box;
}
.popup-title {
font-size: 38rpx;
font-weight: 600;
color: #2c3e50;
}
.popup-content {
flex: 1;
padding: 0 32rpx;
overflow-y: auto;
width: 100%;
box-sizing: border-box;
/* 新增:内容区上下留白,避免贴边 */
padding-top: 8rpx;
padding-bottom: 16rpx;
}
.setting-section {
padding: 36rpx 0; /* 原40rpx 0微调间距 */
width: 100%;
box-sizing: border-box;
}
.setting-section-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 32rpx; /* 原36rpx微调间距 */
}
.setting-section-title {
font-size: 32rpx;
font-weight: 500;
color: #2c3e50;
}
.setting-value {
font-size: 34rpx;
font-weight: 600;
color: #667eea;
}
.add-time-btn {
display: flex;
align-items: center;
gap: 8rpx;
border-radius: 14rpx;
padding: 0 28rpx;
height: 68rpx;
line-height: 68rpx;
font-size: 26rpx;
/* 新增:按钮最小宽度,避免文字挤压 */
min-width: 100rpx;
}
/* 时间列表 */
.empty-tip {
text-align: center;
padding: 72rpx 0; /* 原80rpx 0微调间距 */
color: #a8b2b8;
font-size: 30rpx;
}
.time-list {
display: flex;
flex-direction: column;
gap: 28rpx;
width: 100%;
}
.time-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 32rpx 32rpx; /* 原36rpx 32rpx微调内边距 */
background: linear-gradient(135deg, #f5f7fa 0%, #e8ecf1 100%);
border-radius: 24rpx;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.04);
width: 100%;
box-sizing: border-box;
}
.time-text {
font-size: 42rpx;
font-weight: 600;
color: #2c3e50;
font-feature-settings: "tnum";
}
.time-actions {
display: flex;
gap: 48rpx; /* 原52rpx微调图标间距 */
}
/* 滑块标记 */
.slider-marks {
display: flex;
justify-content: space-between;
padding: 28rpx 0 0;
color: #a8b2b8;
font-size: 26rpx;
width: 100%;
}
/* 弹窗底部(核心:安全区域适配) */
.popup-footer {
padding: 32rpx 32rpx;
/* 优化:安全区域计算更精准,避免被手机底部遮挡 */
padding-bottom: calc(32rpx + env(safe-area-inset-bottom));
border-top: 1rpx solid #f0f2f5;
background: #ffffff;
width: 100%;
box-sizing: border-box;
}
.save-btn {
width: 100%;
border-radius: 20rpx;
font-size: 34rpx;
font-weight: 600;
height: 96rpx; /* 原100rpx微调高度更协调 */
line-height: 96rpx;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border: none;
}
.save-btn::after {
display: none;
}
/* 底部留白(核心优化:适配安全区域,确保不被手机底部遮挡) */
.bottom-spacer {
/* 原120rpx优化为基础高度 + 安全区域,适配不同手机 */
height: calc(120rpx + env(safe-area-inset-bottom));
/* 新增:确保留白区域可点击,不影响交互 */
pointer-events: none;
}
/* 优化 van 组件样式 - 统一宽度和内边距 */
::v-deep .van-cell-group {
border-radius: 28rpx;
overflow: hidden;
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
width: 100%;
margin: 0 auto;
box-sizing: border-box;
/* 新增:单元格组上下留白,避免贴边 */
margin-bottom: 8rpx;
}
::v-deep .van-cell {
padding: 30rpx 36rpx; /* 原32rpx 36rpx微调内边距 */
background: #ffffff;
width: 100%;
box-sizing: border-box;
font-size: 30rpx;
}
::v-deep .van-cell::after {
left: 36rpx;
right: 36rpx;
}
/* 优化 van-switch */
::v-deep .van-switch {
background-color: #e8ecf1;
width: 64rpx;
height: 36rpx;
}
::v-deep .van-switch--on {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
/* 优化 van-notice-bar */
::v-deep .van-notice-bar {
margin: 20rpx 16rpx 28rpx; /* 原24rpx 16rpx增加底部间距 */
border-radius: 20rpx;
padding: 24rpx 36rpx;
width: calc(100% - 32rpx);
font-size: 28rpx;
box-sizing: border-box;
}
/* 优化 van-stepper */
::v-deep .van-stepper {
border-radius: 14rpx;
overflow: hidden;
width: 100%;
/* 新增:步进器上下留白 */
margin: 8rpx 0;
}
::v-deep .van-stepper__minus,
::v-deep .van-stepper__plus {
background: #f5f7fa;
border: none;
color: #2c3e50;
width: 80rpx;
height: 80rpx;
font-size: 32rpx;
}
::v-deep .van-stepper__input {
background: #ffffff;
font-weight: 600;
color: #2c3e50;
font-size: 32rpx;
height: 80rpx;
line-height: 80rpx;
}
/* 优化 van-slider */
::v-deep .van-slider {
height: 60rpx;
width: 100%;
}
::v-deep .van-slider__bar {
height: 8rpx;
background: #e8ecf1;
}
::v-deep .van-slider__button {
width: 52rpx;
height: 52rpx;
box-shadow: 0 4rpx 12rpx rgba(102, 126, 234, 0.3);
}
/* 优化 van-tag */
::v-deep .van-tag {
font-size: 28rpx;
padding: 8rpx 20rpx;
border-radius: 12rpx;
/* 新增:标签最小宽度,避免文字挤压 */
min-width: 80rpx;
text-align: center;
}
::v-deep .van-tag--success {
background: linear-gradient(135deg, #52c41a 0%, #73d13d 100%);
border: none;
}
::v-deep .van-tag--primary {
background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%);
border: none;
}
/* 优化 van-divider */
::v-deep .van-divider {
margin: 32rpx 16rpx; /* 原36rpx 16rpx微调间距 */
border-color: #e8ecf1;
width: calc(100% - 32rpx);
}
/* 动画优化 */
.section {
animation: fadeIn 0.5s ease-out;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20rpx);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.control-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent
);
transition: left 0.5s;
}
.control-btn:active::before {
left: 100%;
}