person.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>鸟类观察个人主页</title>
  7. <link rel="stylesheet" href="https://at.alicdn.com/t/c/font_4006896_9kq3p2p2z4q.css">
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  14. }
  15. body {
  16. background-color: #f5f5f5;
  17. color: #333;
  18. max-width: 100vw;
  19. overflow-x: hidden;
  20. }
  21. .container {
  22. padding-bottom: 60px; /* 给底部导航留空间 */
  23. min-height: 100vh;
  24. }
  25. /* 顶部个人介绍区域 */
  26. .profile-section {
  27. background: linear-gradient(to bottom, #67c23a, #a0d78a);
  28. padding: 20px 15px 30px;
  29. color: white;
  30. position: relative;
  31. }
  32. .profile-content {
  33. display: flex;
  34. align-items: center;
  35. margin-bottom: 15px;
  36. }
  37. .avatar {
  38. width: 80px;
  39. height: 80px;
  40. border-radius: 50%;
  41. border: 3px solid white;
  42. background-color: #eee;
  43. background-size: cover;
  44. margin-right: 15px;
  45. box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  46. }
  47. .profile-info {
  48. flex: 1;
  49. }
  50. .nickname {
  51. font-size: 20px;
  52. font-weight: bold;
  53. margin-bottom: 5px;
  54. }
  55. .identity {
  56. font-size: 14px;
  57. opacity: 0.9;
  58. margin-bottom: 5px;
  59. }
  60. .signature {
  61. font-size: 12px;
  62. opacity: 0.8;
  63. padding-top: 10px;
  64. border-top: 1px solid rgba(255, 255, 255, 0.3);
  65. margin-top: 10px;
  66. }
  67. /* 粉丝数量卡片 */
  68. .stats-card {
  69. background-color: white;
  70. border-radius: 20px;
  71. padding: 15px;
  72. margin-top: 20px;
  73. box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
  74. }
  75. .stats-container {
  76. display: flex;
  77. justify-content: space-around;
  78. text-align: center;
  79. }
  80. .stat-item {
  81. flex: 1;
  82. }
  83. .stat-number {
  84. font-size: 18px;
  85. font-weight: bold;
  86. color: #67c23a;
  87. margin-bottom: 5px;
  88. }
  89. .stat-label {
  90. font-size: 12px;
  91. color: #666;
  92. }
  93. /* 导航标签 */
  94. .tab-nav {
  95. display: flex;
  96. background-color: white;
  97. padding: 10px 0;
  98. position: sticky;
  99. top: 0;
  100. z-index: 5;
  101. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  102. }
  103. .tab-item {
  104. flex: 1;
  105. text-align: center;
  106. font-size: 14px;
  107. color: #666;
  108. padding: 8px 0;
  109. position: relative;
  110. }
  111. .tab-item.active {
  112. color: #67c23a;
  113. font-weight: bold;
  114. }
  115. .tab-item.active::after {
  116. content: '';
  117. position: absolute;
  118. bottom: 0;
  119. left: 50%;
  120. transform: translateX(-50%);
  121. width: 20px;
  122. height: 3px;
  123. background-color: #67c23a;
  124. border-radius: 3px;
  125. }
  126. /* 日志卡片 */
  127. .post-list {
  128. padding: 15px;
  129. }
  130. .post-item {
  131. background-color: white;
  132. border-radius: 12px;
  133. margin-bottom: 15px;
  134. overflow: hidden;
  135. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  136. }
  137. .post-image {
  138. width: 100%;
  139. height: 200px;
  140. background-size: cover;
  141. background-position: center;
  142. }
  143. .post-actions {
  144. display: flex;
  145. justify-content: space-around;
  146. padding: 10px 0;
  147. }
  148. .action-btn {
  149. display: flex;
  150. align-items: center;
  151. color: #666;
  152. font-size: 12px;
  153. padding: 5px 10px;
  154. border-radius: 15px;
  155. transition: all 0.3s;
  156. }
  157. .action-btn:hover {
  158. background-color: #f5f5f5;
  159. }
  160. .action-btn i {
  161. margin-right: 5px;
  162. font-size: 16px;
  163. }
  164. /* 底部导航 */
  165. .bottom-tab {
  166. position: fixed;
  167. bottom: 0;
  168. left: 0;
  169. right: 0;
  170. display: flex;
  171. justify-content: space-around;
  172. background-color: #fff;
  173. padding: 8px 0;
  174. box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
  175. z-index: 100;
  176. }
  177. .tab-icon {
  178. display: flex;
  179. flex-direction: column;
  180. align-items: center;
  181. color: #666;
  182. font-size: 10px;
  183. }
  184. .tab-icon i {
  185. font-size: 22px;
  186. margin-bottom: 3px;
  187. }
  188. .tab-icon.active {
  189. color: #67c23a;
  190. }
  191. /* 美化优化 */
  192. .divider {
  193. height: 1px;
  194. background-color: #f0f0f0;
  195. margin: 10px 15px;
  196. }
  197. .highlight {
  198. color: #67c23a;
  199. }
  200. </style>
  201. </head>
  202. <body>
  203. <div class="container">
  204. <!-- 顶部个人介绍 -->
  205. <div class="profile-section">
  206. <div class="profile-content">
  207. <div class="avatar" style="background-image: url('https://picsum.photos/200/200?random=1');"></div>
  208. <div class="profile-info">
  209. <div class="nickname">观鸟达人小王</div>
  210. <div class="identity">鸟类保护志愿者</div>
  211. <div class="signature">用镜头记录每一片羽翼的美丽</div>
  212. </div>
  213. </div>
  214. <!-- 粉丝数量卡片 -->
  215. <div class="stats-card">
  216. <div class="stats-container">
  217. <div class="stat-item">
  218. <div class="stat-number">328</div>
  219. <div class="stat-label">关注</div>
  220. </div>
  221. <div class="stat-item">
  222. <div class="stat-number">1.2k</div>
  223. <div class="stat-label">粉丝</div>
  224. </div>
  225. <div class="stat-item">
  226. <div class="stat-number">56</div>
  227. <div class="stat-label">日志</div>
  228. </div>
  229. </div>
  230. </div>
  231. </div>
  232. <!-- 导航标签 -->
  233. <div class="tab-nav">
  234. <div class="tab-item active">日志</div>
  235. <div class="tab-item">点亮物种</div>
  236. <div class="tab-item">相册</div>
  237. <div class="tab-item">足迹</div>
  238. <div class="tab-item">收藏</div>
  239. </div>
  240. <!-- 日志列表 -->
  241. <div class="post-list">
  242. <div class="post-item">
  243. <div class="post-image" style="background-image: url('https://picsum.photos/600/400?random=2');"></div>
  244. <div class="post-actions">
  245. <div class="action-btn">
  246. <i class="iconfont icon-like"></i>
  247. <span>点赞</span>
  248. </div>
  249. <div class="action-btn">
  250. <i class="iconfont icon-comment"></i>
  251. <span>评论</span>
  252. </div>
  253. <div class="action-btn">
  254. <i class="iconfont icon-share"></i>
  255. <span>分享</span>
  256. </div>
  257. </div>
  258. </div>
  259. <div class="post-item">
  260. <div class="post-image" style="background-image: url('https://picsum.photos/600/400?random=3');"></div>
  261. <div class="post-actions">
  262. <div class="action-btn">
  263. <i class="iconfont icon-like"></i>
  264. <span>点赞</span>
  265. </div>
  266. <div class="action-btn">
  267. <i class="iconfont icon-comment"></i>
  268. <span>评论</span>
  269. </div>
  270. <div class="action-btn">
  271. <i class="iconfont icon-share"></i>
  272. <span>分享</span>
  273. </div>
  274. </div>
  275. </div>
  276. <div class="post-item">
  277. <div class="post-image" style="background-image: url('https://picsum.photos/600/400?random=4');"></div>
  278. <div class="post-actions">
  279. <div class="action-btn">
  280. <i class="iconfont icon-like"></i>
  281. <span>点赞</span>
  282. </div>
  283. <div class="action-btn">
  284. <i class="iconfont icon-comment"></i>
  285. <span>评论</span>
  286. </div>
  287. <div class="action-btn">
  288. <i class="iconfont icon-share"></i>
  289. <span>分享</span>
  290. </div>
  291. </div>
  292. </div>
  293. </div>
  294. </div>
  295. <!-- 底部导航 -->
  296. <div class="bottom-tab">
  297. <div class="tab-icon active">
  298. <i class="iconfont icon-home"></i>
  299. <span>首页</span>
  300. </div>
  301. <div class="tab-icon">
  302. <i class="iconfont icon-compass"></i>
  303. <span>发现</span>
  304. </div>
  305. <div class="tab-icon">
  306. <i class="iconfont icon-camera"></i>
  307. <span>发布</span>
  308. </div>
  309. <div class="tab-icon">
  310. <i class="iconfont icon-message"></i>
  311. <span>消息</span>
  312. </div>
  313. <div class="tab-icon">
  314. <i class="iconfont icon-user"></i>
  315. <span>我的</span>
  316. </div>
  317. </div>
  318. <script>
  319. // 简单的交互逻辑
  320. document.querySelectorAll('.tab-nav .tab-item').forEach(item => {
  321. item.addEventListener('click', function() {
  322. document.querySelector('.tab-nav .tab-item.active').classList.remove('active');
  323. this.classList.add('active');
  324. });
  325. });
  326. document.querySelectorAll('.bottom-tab .tab-icon').forEach(item => {
  327. item.addEventListener('click', function() {
  328. document.querySelector('.bottom-tab .tab-icon.active').classList.remove('active');
  329. this.classList.add('active');
  330. });
  331. });
  332. // 点赞效果
  333. document.querySelectorAll('.action-btn').forEach(btn => {
  334. if (btn.querySelector('.icon-like')) {
  335. btn.addEventListener('click', function() {
  336. const icon = this.querySelector('i');
  337. if (icon.classList.contains('liked')) {
  338. icon.classList.remove('liked');
  339. icon.style.color = '';
  340. } else {
  341. icon.classList.add('liked');
  342. icon.style.color = '#f56c6c';
  343. }
  344. });
  345. }
  346. });
  347. </script>
  348. </body>
  349. </html>