| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Medical Evolution Timeline</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <script src="https://unpkg.com/feather-icons"></script> |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> |
| <style> |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); |
| |
| body { |
| font-family: 'Inter', sans-serif; |
| background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); |
| overflow: hidden; |
| } |
| |
| .timeline-container { |
| background: linear-gradient(145deg, #ffffff 0%, #f1f5f9 100%); |
| box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); |
| border-radius: 24px; |
| position: relative; |
| overflow: hidden; |
| } |
| |
| .stage-card { |
| transition: all 0.3s ease; |
| position: relative; |
| overflow: hidden; |
| } |
| |
| .stage-card:hover { |
| transform: translateY(-8px); |
| } |
| |
| .stage-card::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| height: 4px; |
| background: currentColor; |
| opacity: 0.8; |
| } |
| |
| .icon-container { |
| background: rgba(255, 255, 255, 0.9); |
| backdrop-filter: blur(10px); |
| border: 2px solid rgba(255, 255, 255, 0.3); |
| } |
| |
| .arrow { |
| position: relative; |
| color: #64748b; |
| } |
| |
| .arrow::before { |
| content: ''; |
| position: absolute; |
| top: 50%; |
| left: 0; |
| right: 0; |
| height: 2px; |
| background: currentColor; |
| transform: translateY(-50%); |
| } |
| |
| .arrow::after { |
| content: ''; |
| position: absolute; |
| top: 50%; |
| right: 0; |
| width: 12px; |
| height: 12px; |
| border-right: 2px solid currentColor; |
| border-top: 2px solid currentColor; |
| transform: translateY(-50%) rotate(45deg); |
| } |
| |
| @keyframes float { |
| 0%, 100% { transform: translateY(0px); } |
| 50% { transform: translateY(-10px); } |
| } |
| |
| .floating { |
| animation: float 6s ease-in-out infinite; |
| } |
| |
| .pulse-glow { |
| animation: pulse-glow 2s ease-in-out infinite alternate; |
| } |
| |
| @keyframes pulse-glow { |
| from { box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); } |
| to { box-shadow: 0 0 30px rgba(59, 130, 246, 0.8); } |
| } |
| </style> |
| </head> |
| <body class="min-h-screen flex items-center justify-center p-8"> |
| <div class="timeline-container w-full max-w-6xl aspect-video p-12"> |
| |
| <div class="text-center mb-16"> |
| <h1 class="text-4xl font-bold text-gray-800 mb-4">医学发展的三个阶段</h1> |
| <p class="text-lg text-gray-600">The Three Stages of Medical Evolution</p> |
| </div> |
| |
| |
| <div class="flex items-center justify-between relative"> |
| |
| <div class="stage-card flex-1 text-center mx-4" style="color: #f59e0b;"> |
| <div class="icon-container w-32 h-32 rounded-2xl mx-auto mb-6 flex items-center justify-center floating"> |
| <div class="relative"> |
| <i data-feather="users" class="w-12 h-12" style="color: #f59e0b;"></i> |
| <i data-feather="book-open" class="w-8 h-8 absolute -bottom-2 -right-2" style="color: #d97706;"></i> |
| </div> |
| </div> |
| <h3 class="text-2xl font-semibold mb-4" style="color: #f59e0b;">经验医学</h3> |
| <p class="text-gray-600 text-lg leading-relaxed">以经验为主,依赖医生直觉</p> |
| <div class="mt-6 text-sm text-gray-500"> |
| <p>传统智慧 · 临床经验 · 师徒传承</p> |
| </div> |
| </div> |
| |
| |
| <div class="arrow flex-1 mx-8"> |
| <div class="text-center"> |
| <i data-feather="arrow-right" class="w-8 h-8 mx-auto" style="color: #64748b;"></i> |
| </div> |
| </div> |
| |
| <div class="stage-card flex-1 text-center mx-4" style="color: #3b82f6;"> |
| <div class="icon-container w-32 h-32 rounded-2xl mx-auto mb-6 flex items-center justify-center floating" style="animation-delay: 0.5s;"> |
| <div class="relative"> |
| <i data-feather="bar-chart-2" class="w-12 h-12" style="color: #3b82f6;"></i> |
| <i data-feather="database" class="w-8 h-8 absolute -bottom-2 -right-2" style="color: #1d4ed8;"></i> |
| </div> |
| </div> |
| <h3 class="text-2xl font-semibold mb-4" style="color: #3b82f6;">证据医学</h3> |
| <p class="text-gray-600 text-lg leading-relaxed">以数据为据,循证与规范</p> |
| <div class="mt-6 text-sm text-gray-500"> |
| <p>临床试验 · 统计分析 · 标准指南</p> |
| </div> |
| </div> |
| |
| |
| <div class="arrow flex-1 mx-8"> |
| <div class="text-center"> |
| <i data-feather="arrow-right" class="w-8 h-8 mx-auto" style="color: #64748b;"></i> |
| </div> |
| </div> |
| |
| |
| <div class="stage-card flex-1 text-center mx-4" style="color: #06b6d4;"> |
| <div class="icon-container w-32 h-32 rounded-2xl mx-auto mb-6 flex items-center justify-center floating pulse-glow" style="animation-delay: 1s;"> |
| <div class="relative"> |
| <i data-feather="cpu" class="w-12 h-12" style="color: #06b6d4;"></i> |
| <i data-feather="activity" class="w-8 h-8 absolute -bottom-2 -right-2" style="color: #0891b2;"></i> |
| </div> |
| </div> |
| <h3 class="text-2xl font-semibold mb-4" style="color: #06b6d4;">智能医学</h3> |
| <p class="text-gray-600 text-lg leading-relaxed">以智能为核,预测与精准</p> |
| <div class="mt-6 text-sm text-gray-500"> |
| <p>人工智能 · 机器学习 · 精准医疗</p> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="mt-16"> |
| <div class="flex justify-between items-center mb-4"> |
| <span class="text-sm font-medium" style="color: #f59e0b;">19世纪前</span> |
| <span class="text-sm font-medium" style="color: #3b82f6;">20世纪</span> |
| <span class="text-sm font-medium" style="color: #06b6d4;">21世纪+</span> |
| </div> |
| <div class="h-2 bg-gray-200 rounded-full overflow-hidden"> |
| <div class="h-full bg-gradient-to-r from-yellow-400 via-blue-500 to-cyan-500 rounded-full"></div> |
| </div> |
| </div> |
| </div> |
|
|
| <script> |
| feather.replace(); |
| |
| |
| document.addEventListener('DOMContentLoaded', function() { |
| const cards = document.querySelectorAll('.stage-card'); |
| |
| cards.forEach((card, index) => { |
| card.addEventListener('mouseenter', () => { |
| cards.forEach(c => { |
| if (c !== card) { |
| c.style.opacity = '0.7'; |
| c.style.transform = 'scale(0.95)'; |
| } |
| }); |
| }); |
| |
| card.addEventListener('mouseleave', () => { |
| cards.forEach(c => { |
| c.style.opacity = '1'; |
| c.style.transform = 'scale(1)'; |
| }); |
| }); |
| }); |
| }); |
| </script> |
| </body> |
| </html> |
|
|