/* 主页样式 */ .home-page { display: flex; flex-direction: column; height: 100vh; /* height: 100%; */ background-color: #ffffff; } /* 头部样式 */ .header { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1rem; background-color: white; box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15); z-index: 1; } .logo-container { display: flex; align-items: center; } .logo { height: 60px; margin-right: 0.15rem; } .logo-text { font-size: 1.8rem; font-weight: 800; color: #333; } .logo-text-en { margin-top: -0.2rem; font-size: 0.85rem; color: #666; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05rem; } .user-info { display: flex; align-items: center; gap: 1.5rem; } .datetime { font-size:1rem; color: #666; } .user { display: flex; align-items: center; gap: 0.5rem; } .avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; } .username { font-size: 0.875rem; font-weight: 500; color: #333; } /* 主要内容区域 */ .index-main-content { height: 100%; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; /* 改为从顶部开始 */ padding-bottom: 0; margin-bottom: 0; background-color: #f0f7f4; background-image: url('/images/主页背景-min.png'); background-size: cover; background-position: center; background-repeat: no-repeat; } .index-main-content-container { padding: 0; margin: 0 auto; width: 90%; max-width: 1200px; height: 100%; display: flex; flex-direction: column; } .welcome-text { font-size: 1.95rem; font-weight: 500; color: #333; text-align: center; /* 标题固定在页面上方 1/4 处,水平垂直居中 */ height: 25vh; /* 占据上方 25% 的高度 */ display: flex; align-items: center; justify-content: center; margin: 0; flex-shrink: 0; /* 防止被压缩 */ } .modules-container { display: flex; flex-wrap: wrap; /* 自动换行 */ justify-content: center; align-content: flex-start; /* 内容从顶部开始排列 */ gap: 2.5rem; flex: 1; /* 占据剩余空间 */ overflow-y: auto; /* 超出高度时显示垂直滚动条 */ overflow-x: hidden; /* 隐藏水平滚动条 */ padding: 2rem 0 3rem 0; /* 上下留出一些空间 */ } /* 滚动条样式优化 */ .modules-container::-webkit-scrollbar { width: 8px; } .modules-container::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.05); border-radius: 4px; } .modules-container::-webkit-scrollbar-thumb { background: rgba(0, 104, 74, 0.3); border-radius: 4px; transition: background 0.2s; } .modules-container::-webkit-scrollbar-thumb:hover { background: rgba(0, 104, 74, 0.5); } .module-card { display: flex; align-items: center; justify-content: flex-start; gap: 1.5rem; padding: 0 2rem; height: 136px; width: 290px; flex-shrink: 0; /* 防止卡片被压缩 */ background: linear-gradient(180deg, #ebf1f7 0%, #ffffff 100%); border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s; cursor: pointer; border: 1px solid transparent; } .module-card:hover { transform: translateY(-5px); border-color: #269b6c; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); } /* .contract-icon { background-image: url('/images/contract-icon.svg'); } .review-icon { background-image: url('/images/review-icon.svg'); } .ai-icon { background-image: url('/images/ai-icon.svg'); } */ .module-name { font-size: 1.25rem; font-weight: 500; color: #333; } .mountains-bg { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; background-image: url('/images/mountains-bg.svg'); background-position: center bottom; background-repeat: no-repeat; background-size: cover; } .logout-button { display: flex; align-items: center; justify-content: center; padding: 0.5rem; background: transparent; border: none; color: #666; cursor: pointer; transition: all 0.2s; border-radius: 4px; } .logout-button:hover { background-color: rgba(0, 104, 74, 0.05); color: #00684a; } .logout-button i { font-size: 1.25rem; } /* ===== 移动端响应式样式 ===== */ @media (max-width: 768px) { /* 头部样式调整 */ .header { padding: 0.5rem 0.75rem; } .logo { height: 40px; margin-right: 0.5rem; } .logo-text { font-size: 1.2rem; font-weight: 700; } .logo-text-en { font-size: 0.65rem; margin-top: -0.15rem; } /* 隐藏日期时间以节省空间 */ .datetime { display: none; } .user-info { gap: 0.5rem; } .username { display: none; /* 移动端隐藏用户名,只显示头像 */ } .avatar { width: 36px; height: 36px; } /* 主内容区域调整 */ .index-main-content { padding: 1rem 0; } .index-main-content-container { width: 95%; padding: 0; } .welcome-text { font-size: 1.3rem; height: 20vh; /* 移动端标题区域稍小一点 */ padding: 0 1rem; } /* 模块容器改为纵向排列 */ .modules-container { flex-direction: column; flex-wrap: nowrap; /* 移动端不需要换行 */ gap: 1.25rem; align-items: center; overflow-y: auto; /* 移动端超出长度滚动显示 */ padding: 1rem 0 2rem 0; } /* 移动端滚动条样式 */ .modules-container::-webkit-scrollbar { width: 6px; } /* 模块卡片调整 */ .module-card { width: 100%; max-width: 340px; height: 100px; padding: 0 1.5rem; gap: 1.25rem; flex-shrink: 0; /* 移动端也防止卡片被压缩 */ } .module-card img { width: 48px !important; height: 48px !important; } .module-name { font-size: 1.1rem; } .logout-button { padding: 0.4rem; } .logout-button i { font-size: 1.15rem; } } /* 超小屏幕 (手机竖屏) */ @media (max-width: 480px) { .header { padding: 0.4rem 0.5rem; } .logo { height: 36px; } .logo-text { font-size: 1rem; } .logo-text-en { font-size: 0.6rem; } .welcome-text { font-size: 1.15rem; height: 18vh; /* 超小屏幕标题区域更小 */ } .module-card { max-width: 300px; height: 90px; padding: 0 1.25rem; gap: 1rem; } .module-card img { width: 42px !important; height: 42px !important; } .module-name { font-size: 1rem; } .modules-container { gap: 1rem; } } /* 平板横屏 */ @media (min-width: 769px) and (max-width: 1024px) { .index-main-content-container { width: 85%; } .welcome-text { font-size: 1.75rem; height: 22vh; /* 平板电脑标题区域高度 */ } .modules-container { gap: 2rem; padding: 1.5rem 0 2.5rem 0; } .module-card { width: 260px; height: 120px; } }