777 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			777 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			HTML
		
	
	
	
| <!DOCTYPE html>
 | ||
| <html lang="zh-CN">
 | ||
| <head>
 | ||
|     <meta charset="UTF-8">
 | ||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | ||
|     <title>春申菜市场 - 生鲜购物</title>
 | ||
|     <style>
 | ||
|         * {
 | ||
|             margin: 0;
 | ||
|             padding: 0;
 | ||
|             box-sizing: border-box;
 | ||
|         }
 | ||
|         
 | ||
|         body {
 | ||
|             font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
 | ||
|             background-color: #f5f5f5;
 | ||
|             color: #333;
 | ||
|             line-height: 1.4;
 | ||
|         }
 | ||
|         
 | ||
|         /* 顶部状态栏 */
 | ||
|         .status-bar {
 | ||
|             background-color: #fff;
 | ||
|             padding: 8px 20px;
 | ||
|             display: flex;
 | ||
|             justify-content: space-between;
 | ||
|             align-items: center;
 | ||
|             font-size: 14px;
 | ||
|             font-weight: 600;
 | ||
|             border-bottom: 1px dashed #ccc;
 | ||
|         }
 | ||
|         
 | ||
|         .status-left {
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 5px;
 | ||
|         }
 | ||
|         
 | ||
|         .status-right {
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 5px;
 | ||
|         }
 | ||
|         
 | ||
|         /* 导航栏 */
 | ||
|         .navbar {
 | ||
|             background-color: #4CAF50;
 | ||
|             padding: 12px 16px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 12px;
 | ||
|             color: white;
 | ||
|         }
 | ||
|         
 | ||
|         .nav-back {
 | ||
|             font-size: 18px;
 | ||
|             cursor: pointer;
 | ||
|         }
 | ||
|         
 | ||
|         .nav-title {
 | ||
|             flex: 1;
 | ||
|             font-size: 16px;
 | ||
|             font-weight: 500;
 | ||
|         }
 | ||
|         
 | ||
|         /* 搜索框 */
 | ||
|         .search-container {
 | ||
|             padding: 12px 16px;
 | ||
|             background-color: #fff;
 | ||
|         }
 | ||
|         
 | ||
|         .search-box {
 | ||
|             background-color: #f5f5f5;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 20px;
 | ||
|             padding: 10px 16px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 8px;
 | ||
|         }
 | ||
|         
 | ||
|         .search-icon {
 | ||
|             color: #999;
 | ||
|         }
 | ||
|         
 | ||
|         .search-input {
 | ||
|             flex: 1;
 | ||
|             border: none;
 | ||
|             background: none;
 | ||
|             outline: none;
 | ||
|             color: #999;
 | ||
|         }
 | ||
|         
 | ||
|         /* 菜市场卡片 */
 | ||
|         .market-card {
 | ||
|             margin: 16px;
 | ||
|             background-color: #fff;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 12px;
 | ||
|             padding: 16px;
 | ||
|         }
 | ||
|         
 | ||
|         .market-header {
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 12px;
 | ||
|             margin-bottom: 12px;
 | ||
|         }
 | ||
|         
 | ||
|         .market-avatar {
 | ||
|             width: 60px;
 | ||
|             height: 60px;
 | ||
|             background-color: #f0f0f0;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 8px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: center;
 | ||
|             color: #999;
 | ||
|         }
 | ||
|         
 | ||
|         .market-info h3 {
 | ||
|             font-size: 18px;
 | ||
|             font-weight: 600;
 | ||
|             margin-bottom: 4px;
 | ||
|         }
 | ||
|         
 | ||
|         .market-stats {
 | ||
|             display: flex;
 | ||
|             gap: 16px;
 | ||
|             font-size: 14px;
 | ||
|             color: #666;
 | ||
|         }
 | ||
|         
 | ||
|         .rating {
 | ||
|             color: #FF9800;
 | ||
|             font-weight: 500;
 | ||
|         }
 | ||
|         
 | ||
|         .market-details {
 | ||
|             font-size: 14px;
 | ||
|             color: #666;
 | ||
|             margin-top: 8px;
 | ||
|             line-height: 1.5;
 | ||
|         }
 | ||
|         
 | ||
|         .market-delivery {
 | ||
|             display: flex;
 | ||
|             justify-content: space-between;
 | ||
|             align-items: center;
 | ||
|             margin-top: 12px;
 | ||
|         }
 | ||
|         
 | ||
|         .delivery-info {
 | ||
|             font-size: 13px;
 | ||
|             color: #999;
 | ||
|         }
 | ||
|         
 | ||
|         .coupon-btn {
 | ||
|             background-color: #FF9800;
 | ||
|             color: white;
 | ||
|             border: none;
 | ||
|             border-radius: 12px;
 | ||
|             padding: 4px 8px;
 | ||
|             font-size: 12px;
 | ||
|             cursor: pointer;
 | ||
|         }
 | ||
|         
 | ||
|         /* 横幅 */
 | ||
|         .banner {
 | ||
|             margin: 0 16px 16px;
 | ||
|             height: 120px;
 | ||
|             background: linear-gradient(135deg, #4CAF50, #8BC34A);
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 12px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: center;
 | ||
|             color: white;
 | ||
|             font-size: 18px;
 | ||
|             font-weight: 600;
 | ||
|         }
 | ||
|         
 | ||
|         /* 店长推荐 */
 | ||
|         .section {
 | ||
|             margin: 16px;
 | ||
|         }
 | ||
|         
 | ||
|         .section-header {
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             margin-bottom: 12px;
 | ||
|         }
 | ||
|         
 | ||
|         .market-category {
 | ||
|             background-color: #f0f0f0;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             padding: 2px 4px;
 | ||
|             border-radius: 2px;
 | ||
|             font-size: 10px;
 | ||
|             color: #666;
 | ||
|             margin-right: 8px;
 | ||
|             width: 40px;
 | ||
|             text-align: center;
 | ||
|             line-height: 1.2;
 | ||
|         }
 | ||
|         
 | ||
|         .section-title {
 | ||
|             font-size: 18px;
 | ||
|             font-weight: 600;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 8px;
 | ||
|             flex: 1;
 | ||
|         }
 | ||
|         
 | ||
|         .recommend-grid {
 | ||
|             display: grid;
 | ||
|             grid-template-columns: repeat(3, 1fr);
 | ||
|             gap: 12px;
 | ||
|         }
 | ||
|         
 | ||
|         .recommend-item {
 | ||
|             background-color: #fff;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 8px;
 | ||
|             padding: 12px;
 | ||
|             text-align: center;
 | ||
|         }
 | ||
|         
 | ||
|         .recommend-image {
 | ||
|             width: 100%;
 | ||
|             height: 60px;
 | ||
|             background-color: #f0f0f0;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 6px;
 | ||
|             margin-bottom: 8px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: center;
 | ||
|             color: #999;
 | ||
|             font-size: 12px;
 | ||
|         }
 | ||
|         
 | ||
|         .recommend-price {
 | ||
|             font-size: 16px;
 | ||
|             font-weight: 600;
 | ||
|             color: #4CAF50;
 | ||
|         }
 | ||
|         
 | ||
|         /* 功能按钮区域 */
 | ||
|         .feature-buttons {
 | ||
|             display: grid;
 | ||
|             grid-template-columns: repeat(4, 1fr);
 | ||
|             gap: 12px;
 | ||
|             margin: 16px;
 | ||
|         }
 | ||
|         
 | ||
|         .feature-btn {
 | ||
|             background-color: #fff;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 8px;
 | ||
|             padding: 16px 8px;
 | ||
|             text-align: center;
 | ||
|             cursor: pointer;
 | ||
|         }
 | ||
|         
 | ||
|         .feature-icon {
 | ||
|             width: 32px;
 | ||
|             height: 32px;
 | ||
|             background-color: #f0f0f0;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 50%;
 | ||
|             margin: 0 auto 8px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: center;
 | ||
|             color: #999;
 | ||
|         }
 | ||
|         
 | ||
|         .feature-text {
 | ||
|             font-size: 14px;
 | ||
|             color: #333;
 | ||
|         }
 | ||
|         
 | ||
|         /* 排序选项 */
 | ||
|         .sort-options {
 | ||
|             display: flex;
 | ||
|             background-color: #fff;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             margin: 0 16px 8px;
 | ||
|             border-radius: 8px;
 | ||
|             overflow: hidden;
 | ||
|         }
 | ||
|         
 | ||
|         .sort-option {
 | ||
|             flex: 1;
 | ||
|             padding: 10px 8px;
 | ||
|             text-align: center;
 | ||
|             font-size: 14px;
 | ||
|             border-right: 1px dashed #ccc;
 | ||
|             cursor: pointer;
 | ||
|             color: #666;
 | ||
|         }
 | ||
|         
 | ||
|         .sort-option:last-child {
 | ||
|             border-right: none;
 | ||
|         }
 | ||
|         
 | ||
|         .sort-option.active {
 | ||
|             color: #4CAF50;
 | ||
|             font-weight: 500;
 | ||
|         }
 | ||
|         
 | ||
|         /* 分类标签 */
 | ||
|         .category-tabs {
 | ||
|             display: flex;
 | ||
|             background-color: #fff;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             margin: 0 16px 16px;
 | ||
|             border-radius: 8px;
 | ||
|             overflow: hidden;
 | ||
|         }
 | ||
|         
 | ||
|         .category-tab {
 | ||
|             flex: 1;
 | ||
|             padding: 12px 8px;
 | ||
|             text-align: center;
 | ||
|             font-size: 14px;
 | ||
|             border-right: 1px dashed #ccc;
 | ||
|             cursor: pointer;
 | ||
|         }
 | ||
|         
 | ||
|         .category-tab:last-child {
 | ||
|             border-right: none;
 | ||
|         }
 | ||
|         
 | ||
|         .category-tab.active {
 | ||
|             background-color: #4CAF50;
 | ||
|             color: white;
 | ||
|         }
 | ||
|         
 | ||
|         /* 商品网格 */
 | ||
|         .product-grid {
 | ||
|             margin: 0 16px 100px;
 | ||
|             display: grid;
 | ||
|             grid-template-columns: repeat(2, 1fr);
 | ||
|             gap: 12px;
 | ||
|         }
 | ||
|         
 | ||
|         .product-card {
 | ||
|             background-color: #fff;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 8px;
 | ||
|             padding: 12px;
 | ||
|             display: flex;
 | ||
|             flex-direction: column;
 | ||
|         }
 | ||
|         
 | ||
|         .product-image {
 | ||
|             width: 100%;
 | ||
|             height: 120px;
 | ||
|             background-color: #f0f0f0;
 | ||
|             border: 1px dashed #ccc;
 | ||
|             border-radius: 6px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: center;
 | ||
|             color: #999;
 | ||
|             font-size: 12px;
 | ||
|             margin-bottom: 8px;
 | ||
|         }
 | ||
|         
 | ||
|         .product-name {
 | ||
|             font-size: 14px;
 | ||
|             font-weight: 500;
 | ||
|             color: #333;
 | ||
|             margin-bottom: 4px;
 | ||
|             line-height: 1.3;
 | ||
|         }
 | ||
|         
 | ||
|         .product-specs {
 | ||
|             font-size: 12px;
 | ||
|             color: #666;
 | ||
|             margin-bottom: 4px;
 | ||
|         }
 | ||
|         
 | ||
|         .product-store {
 | ||
|             font-size: 11px;
 | ||
|             color: #4CAF50;
 | ||
|             margin-bottom: 4px;
 | ||
|             line-height: 1.2;
 | ||
|         }
 | ||
|         
 | ||
|         .product-delivery {
 | ||
|             font-size: 10px;
 | ||
|             color: #999;
 | ||
|             margin-bottom: 8px;
 | ||
|             line-height: 1.2;
 | ||
|         }
 | ||
|         
 | ||
|         .product-footer {
 | ||
|             display: flex;
 | ||
|             justify-content: space-between;
 | ||
|             align-items: flex-end;
 | ||
|             margin-top: auto;
 | ||
|         }
 | ||
|         
 | ||
|         .product-price {
 | ||
|             font-size: 16px;
 | ||
|             font-weight: 600;
 | ||
|             color: #4CAF50;
 | ||
|         }
 | ||
|         
 | ||
|         .product-meta {
 | ||
|             text-align: right;
 | ||
|             font-size: 11px;
 | ||
|             color: #999;
 | ||
|             line-height: 1.2;
 | ||
|         }
 | ||
|         
 | ||
|         .product-rating {
 | ||
|             margin-bottom: 2px;
 | ||
|         }
 | ||
|         
 | ||
|         .product-distance {
 | ||
|             color: #666;
 | ||
|         }
 | ||
|         
 | ||
|         /* 社交按钮样式 */
 | ||
|         .social-buttons {
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 16px;
 | ||
|             margin-top: 8px;
 | ||
|             padding-top: 8px;
 | ||
|             border-top: 1px dashed #eee;
 | ||
|         }
 | ||
|         
 | ||
|         .social-btn {
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 4px;
 | ||
|             cursor: pointer;
 | ||
|             font-size: 12px;
 | ||
|             color: #666;
 | ||
|             transition: color 0.2s;
 | ||
|         }
 | ||
|         
 | ||
|         .social-btn:hover {
 | ||
|             color: #4CAF50;
 | ||
|         }
 | ||
|         
 | ||
|         .social-btn.active {
 | ||
|             color: #4CAF50;
 | ||
|         }
 | ||
|         
 | ||
|         .social-btn .icon {
 | ||
|             font-size: 14px;
 | ||
|         }
 | ||
|         
 | ||
|         .social-btn .count {
 | ||
|             font-size: 11px;
 | ||
|         }
 | ||
|         
 | ||
|         /* 底部购物车 */
 | ||
|         .cart-float {
 | ||
|             position: fixed;
 | ||
|             bottom: 0;
 | ||
|             left: 0;
 | ||
|             right: 0;
 | ||
|             background-color: #fff;
 | ||
|             border-top: 1px dashed #ccc;
 | ||
|             padding: 12px 16px;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             gap: 12px;
 | ||
|             z-index: 100;
 | ||
|         }
 | ||
|         
 | ||
|         .cart-icon {
 | ||
|             width: 48px;
 | ||
|             height: 48px;
 | ||
|             background-color: #4CAF50;
 | ||
|             border: 1px dashed #333;
 | ||
|             border-radius: 50%;
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: center;
 | ||
|             color: white;
 | ||
|             font-size: 20px;
 | ||
|         }
 | ||
|         
 | ||
|         .cart-info {
 | ||
|             flex: 1;
 | ||
|         }
 | ||
|         
 | ||
|         .cart-count {
 | ||
|             font-size: 14px;
 | ||
|             color: #666;
 | ||
|         }
 | ||
|         
 | ||
|         .cart-total {
 | ||
|             font-size: 18px;
 | ||
|             font-weight: 600;
 | ||
|             color: #4CAF50;
 | ||
|         }
 | ||
|         
 | ||
|         .checkout-btn {
 | ||
|             background-color: #4CAF50;
 | ||
|             color: white;
 | ||
|             border: 1px dashed #333;
 | ||
|             border-radius: 20px;
 | ||
|             padding: 10px 20px;
 | ||
|             font-size: 16px;
 | ||
|             cursor: pointer;
 | ||
|         }
 | ||
|         
 | ||
|         /* 响应式设计 */
 | ||
|         @media (max-width: 420px) {
 | ||
|             .product-grid {
 | ||
|                 grid-template-columns: 1fr;
 | ||
|             }
 | ||
|             
 | ||
|             .product-card {
 | ||
|                 padding: 10px;
 | ||
|             }
 | ||
|             
 | ||
|             .product-image {
 | ||
|                 height: 100px;
 | ||
|             }
 | ||
|         }
 | ||
|         
 | ||
|         @media (max-width: 320px) {
 | ||
|             .recommend-grid {
 | ||
|                 grid-template-columns: repeat(2, 1fr);
 | ||
|             }
 | ||
|             
 | ||
|             .feature-buttons {
 | ||
|                 grid-template-columns: repeat(2, 1fr);
 | ||
|             }
 | ||
|             
 | ||
|             .product-grid {
 | ||
|                 gap: 8px;
 | ||
|             }
 | ||
|             
 | ||
|             .product-card {
 | ||
|                 padding: 8px;
 | ||
|             }
 | ||
|             
 | ||
|             .product-image {
 | ||
|                 height: 80px;
 | ||
|             }
 | ||
|         }
 | ||
|     </style>
 | ||
| </head>
 | ||
| <body>
 | ||
|     <!-- 顶部状态栏 -->
 | ||
|     <div class="status-bar">
 | ||
|         <div class="status-left">
 | ||
|             <span>12:46</span>
 | ||
|         </div>
 | ||
|         <div class="status-right">
 | ||
|             <span>🔋20%</span>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     
 | ||
|     <!-- 导航栏 -->
 | ||
|     <div class="navbar">
 | ||
|         <span class="nav-back">←</span>
 | ||
|         <span class="nav-title">上海市茅台路香万家...</span>
 | ||
|     </div>
 | ||
|     
 | ||
|     <!-- 搜索框 -->
 | ||
|     <div class="search-container">
 | ||
|         <div class="search-box">
 | ||
|             <span class="search-icon">🔍</span>
 | ||
|             <input type="text" class="search-input" placeholder="查询市场内商品">
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     
 | ||
|     <!-- 菜市场卡片 -->
 | ||
|     <div class="market-card">
 | ||
|         <div class="market-header">
 | ||
|             <div class="market-avatar">店铺</div>
 | ||
|             <div class="market-info">
 | ||
|                 <h3>春申菜市场</h3>
 | ||
|                 <div class="market-stats">
 | ||
|                     <span class="rating">⭐ 5.0分</span>
 | ||
|                     <span>👥 粉丝 4</span>
 | ||
|                     <span>📈 销量 36</span>
 | ||
|                     <span>🔗</span>
 | ||
|                     <span>👍</span>
 | ||
|                     <span>❤️</span>
 | ||
|                 </div>
 | ||
|                 <div class="market-details">
 | ||
|                     📍 农家小妙(春申菜店)
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         <div class="market-delivery">
 | ||
|             <div class="delivery-info">
 | ||
|                 起送 ¥1 配送 ¥1 3h内送达
 | ||
|             </div>
 | ||
|             <button class="coupon-btn">🏷️ 无门槛0.5元</button>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     
 | ||
|     <!-- 横幅 -->
 | ||
|     <div class="banner">
 | ||
|         可选内容轮播图,具备点击交互
 | ||
|     </div>
 | ||
|     
 | ||
|     <!-- 店长推荐 -->
 | ||
|     <div class="section">
 | ||
|         <div class="section-header">
 | ||
|            
 | ||
|             <div class="section-title">
 | ||
|                 👨🍳 店长推荐
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         <div class="recommend-grid">
 | ||
|             <div class="recommend-item">
 | ||
|                 <div class="recommend-image">商品图</div>
 | ||
|                 <div class="recommend-price">¥2</div>
 | ||
|             </div>
 | ||
|             <div class="recommend-item">
 | ||
|                 <div class="recommend-image">商品图</div>
 | ||
|                 <div class="recommend-price">¥25</div>
 | ||
|             </div>
 | ||
|             <div class="recommend-item">
 | ||
|                 <div class="recommend-image">商品图</div>
 | ||
|                 <div class="recommend-price">¥3</div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     
 | ||
|     <!-- 功能按钮区域 -->
 | ||
|     <div class="feature-buttons">
 | ||
| 
 | ||
| 	<div class="market-category">本<br>市<br>场<br>品<br>类</div>
 | ||
|         <div class="feature-btn">
 | ||
|             <div class="feature-icon">✨</div>
 | ||
|             <div class="feature-text">特色推荐</div>
 | ||
|         </div>
 | ||
|         <div class="feature-btn">
 | ||
|             <div class="feature-icon">🎁</div>
 | ||
|             <div class="feature-text">福利专区</div>
 | ||
|         </div>
 | ||
|         <div class="feature-btn">
 | ||
|             <div class="feature-icon">👑</div>
 | ||
|             <div class="feature-text">会员专区</div>
 | ||
|         </div>
 | ||
|         <div class="feature-btn">
 | ||
|             <div class="feature-icon">📊</div>
 | ||
|             <div class="feature-text">分销中心</div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
|     
 | ||
| 	   <!-- 分类标签 -->
 | ||
|     <div class="category-tabs">
 | ||
|         <div class="category-tab active">全部</div>
 | ||
|         <div class="category-tab">海鲜水产</div>
 | ||
|         <div class="category-tab">水果鲜花</div>
 | ||
|         <div class="category-tab">蔬菜</div>
 | ||
|         <div class="category-tab">蛋类</div>
 | ||
|     </div>
 | ||
| 	
 | ||
|     <!-- 排序选项 -->
 | ||
|     <div class="sort-options">
 | ||
|         <div class="sort-option active">综合排序</div>
 | ||
|         <div class="sort-option">销量 ↓</div>
 | ||
|         <div class="sort-option">新品</div>
 | ||
|         <div class="sort-option">价格</div>
 | ||
|         <div class="sort-option">📍 已选择摊位</div>
 | ||
|     </div>
 | ||
|     
 | ||
|  
 | ||
|     
 | ||
|     <!-- 商品网格 -->
 | ||
|     <div class="product-grid">
 | ||
|         <div class="product-card">
 | ||
|             <div class="product-image">蔬菜图</div>
 | ||
|             <div class="product-name">西蓝花约500g</div>
 | ||
|             <div class="product-specs">¥1/份(约) ⭐ 5.0分</div>
 | ||
|             <div class="product-store">牛牛蔬菜店(春申菜市场)</div>
 | ||
|             <div class="product-delivery">起送¥1,满¥2免基础配送费</div>
 | ||
|             <div class="product-footer">
 | ||
|                 <div class="product-price">¥1</div>
 | ||
|                 <div class="product-meta">
 | ||
|                     <div class="product-distance">📍 0.1km</div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|             <div class="social-buttons">
 | ||
|                 <div class="social-btn">
 | ||
|                     <span class="icon">🔗</span>
 | ||
|                 </div>
 | ||
|                 <div class="social-btn" onclick="likeProduct(this)">
 | ||
|                     <span class="icon">👍</span>
 | ||
|                     <span class="count">28</span>
 | ||
|                 </div>
 | ||
|                 <div class="social-btn" onclick="favoriteProduct(this)">
 | ||
|                     <span class="icon">❤️</span>
 | ||
|                     <span class="count">15</span>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         
 | ||
|         <div class="product-card">
 | ||
|             <div class="product-image">蔬菜图</div>
 | ||
|             <div class="product-name">冬瓜500g</div>
 | ||
|             <div class="product-specs">¥2/份(约) ⭐ 5.0分</div>
 | ||
|             <div class="product-store">牛牛蔬菜店(春申菜市场)</div>
 | ||
|             <div class="product-delivery">起送¥1,满¥2免基础配送费</div>
 | ||
|             <div class="product-footer">
 | ||
|                 <div class="product-price">¥2</div>
 | ||
|                 <div class="product-meta">
 | ||
|                     <div class="product-distance">📍 0.1km</div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|             <div class="social-buttons">
 | ||
|                 <div class="social-btn">
 | ||
|                     <span class="icon">🔗</span>
 | ||
|                 </div>
 | ||
|                 <div class="social-btn" onclick="likeProduct(this)">
 | ||
|                     <span class="icon">👍</span>
 | ||
|                     <span class="count">34</span>
 | ||
|                 </div>
 | ||
|                 <div class="social-btn" onclick="favoriteProduct(this)">
 | ||
|                     <span class="icon">❤️</span>
 | ||
|                     <span class="count">21</span>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         
 | ||
|        
 | ||
|     </div>
 | ||
|     
 | ||
|     <!-- 底部浮动购物车 -->
 | ||
|     <div class="cart-float">
 | ||
|         <div class="cart-icon">🛒</div>
 | ||
|         <div class="cart-info">
 | ||
|             <div class="cart-count">已选择 0 件商品</div>
 | ||
|             <div class="cart-total">合计:¥0.00</div>
 | ||
|         </div>
 | ||
|         <button class="checkout-btn">去结算</button>
 | ||
|     </div>
 | ||
|     
 | ||
|     <script>
 | ||
|         function likeProduct(btn) {
 | ||
|             const countSpan = btn.querySelector('.count');
 | ||
|             let count = parseInt(countSpan.textContent);
 | ||
|             
 | ||
|             if (btn.classList.contains('active')) {
 | ||
|                 btn.classList.remove('active');
 | ||
|                 countSpan.textContent = count - 1;
 | ||
|             } else {
 | ||
|                 btn.classList.add('active');
 | ||
|                 countSpan.textContent = count + 1;
 | ||
|             }
 | ||
|         }
 | ||
|         
 | ||
|         function favoriteProduct(btn) {
 | ||
|             const countSpan = btn.querySelector('.count');
 | ||
|             let count = parseInt(countSpan.textContent);
 | ||
|             
 | ||
|             if (btn.classList.contains('active')) {
 | ||
|                 btn.classList.remove('active');
 | ||
|                 countSpan.textContent = count - 1;
 | ||
|             } else {
 | ||
|                 btn.classList.add('active');
 | ||
|                 countSpan.textContent = count + 1;
 | ||
|             }
 | ||
|         }
 | ||
|     </script>
 | ||
| </body>
 | ||
| </html> |