# HTML 海报可复用组件库 ## CSS 变量(配色方案) 基础色板,根据论文或机构风格调整: ```css :root { --primary: #1B3A4B; --secondary: #065A82; --accent: #00A7E1; --warm: #E8927C; --gold: #D4A574; --bg-light: #F4F7F9; --bg-cream: #FAFBFC; --text-dark: #1A1A2E; --text-muted: #5A6B7D; } ``` ### Result 独立 accent 色 每个 Result 使用不同的 accent 色作为顶部边框和编号圆标背景,帮助读者区分不同发现。按论文主题选色,例如: ```css :root { --r1-color: #1B3A4B; --r2-color: #065A82; --r3-color: #2E8B57; --r4-color: #00A7E1; --r5-color: #D4A574; --r6-color: #E8927C; } .result-1 { border-top-color: var(--r1-color); } .result-2 { border-top-color: var(--r2-color); } /* ... */ ``` --- ## 三列 Grid 布局 ```css .poster { width: 48in; background: var(--bg-cream); } .content { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.3in; padding: 0.45in 0.55in; } ``` ### 标准布局(6 个 Result 示例) 第 1 列 = 叙事列,第 2–3 列 = Result + Conclusions。 ```css .background { grid-column: 1; grid-row: 1; } .study-design { grid-column: 1; grid-row: 2; } .methods { grid-column: 1; grid-row: 3; } .result-1 { grid-column: 2; grid-row: 1; } .result-2 { grid-column: 3; grid-row: 1; } .result-3 { grid-column: 2; grid-row: 2; } .result-4 { grid-column: 3; grid-row: 2; } .result-5 { grid-column: 2; grid-row: 3; } .result-6 { grid-column: 3; grid-row: 3; } .conclusions { grid-column: 2 / 4; grid-row: 4; } ``` Result 数量不同时调整行数,保持从左到右、从上到下排列: ```css /* 4 个 Result */ .result-1 { grid-column: 2; grid-row: 1; } .result-2 { grid-column: 3; grid-row: 1; } .result-3 { grid-column: 2; grid-row: 2; } .result-4 { grid-column: 3; grid-row: 2; } .conclusions { grid-column: 2 / 4; grid-row: 3; } /* 3 个 Result(最后行只占 1 格) */ .result-1 { grid-column: 2; grid-row: 1; } .result-2 { grid-column: 3; grid-row: 1; } .result-3 { grid-column: 2; grid-row: 2; } .conclusions { grid-column: 2 / 4; grid-row: 3; } ``` --- ## Section 基础样式 ```css .section { background: white; border-radius: 0.08in; padding: 0.3in; position: relative; box-shadow: 0 2px 10px rgba(0,0,0,0.04); border: 1px solid rgba(0,0,0,0.05); border-top: 4px solid var(--accent); } .section-title { font-family: 'Playfair Display', serif; font-size: 0.28in; font-weight: 700; color: var(--primary); margin-bottom: 0.18in; padding-bottom: 0.08in; border-bottom: 3px solid var(--accent); display: inline-block; } .section p, .section li { font-size: 0.17in; line-height: 1.6; color: var(--text-dark); } ``` --- ## Result 编号圆标 每个 Result section 带有绝对定位的编号圆标,引导阅读顺序: ```css .result-number { position: absolute; top: -0.18in; left: 0.2in; width: 0.4in; height: 0.4in; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 0.22in; font-weight: 900; color: white; box-shadow: 0 2px 8px rgba(0,0,0,0.15); z-index: 2; } ``` HTML: ```html
1

Result 标题

...
``` --- ## Conclusions 深色样式 Conclusions 跨第 2–3 列,使用深色渐变背景作为视觉终点: ```css .conclusions { grid-column: 2 / 4; background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); color: white; border-top: none; } .conclusions .section-title { color: white; border-bottom-color: var(--gold); } .concl-item { display: flex; align-items: flex-start; gap: 0.12in; margin-bottom: 0.12in; padding: 0.1in; background: rgba(255,255,255,0.06); border-radius: 0.05in; border-left: 3px solid var(--gold); } .concl-num { font-family: 'Playfair Display', serif; font-size: 0.28in; font-weight: 900; color: var(--accent); flex-shrink: 0; width: 0.35in; text-align: center; } .concl-text { font-size: 0.16in; line-height: 1.55; color: rgba(255,255,255,0.92); } ``` HTML: ```html

Conclusions

1
结论内容...
2
结论内容...
``` --- ## Stat Box 用于 Study Design 区域展示关键数字: ```css .stat-row { display: flex; gap: 0.15in; flex-wrap: wrap; } .stat-box { flex: 1; min-width: 1in; background: var(--bg-light); border-radius: 0.06in; padding: 0.14in; text-align: center; border-left: 3px solid var(--accent); } .stat-box .number { font-family: 'Playfair Display', serif; font-size: 0.34in; font-weight: 900; color: var(--secondary); display: block; } .stat-box .label { font-size: 0.12in; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; } ``` --- ## Finding Card ```css .finding-card { background: var(--bg-light); border-radius: 0.06in; padding: 0.15in; margin: 0.1in 0; border-left: 4px solid var(--accent); } .finding-card.important { border-left-color: var(--warm); background: #FFF8F5; } ``` --- ## Cladogram(多物种系统发育树) 仅用于涉及 ≥3 物种跨物种比较的论文。纯 CSS 实现,展示拓扑关系和类群分组,不标注分化时间。 ```css .cladogram { padding: 0.15in; background: var(--bg-light); border-radius: 0.06in; margin: 0.1in 0; font-size: 0.12in; } .clade-group { border-left: 2px solid var(--secondary); margin-left: 0.15in; padding-left: 0.15in; padding-top: 0.04in; padding-bottom: 0.04in; } .clade-label { font-weight: 700; color: var(--secondary); font-size: 0.13in; margin-bottom: 0.04in; } .clade-species { display: flex; flex-wrap: wrap; gap: 0.06in; margin: 0.04in 0; } .species-tag { display: inline-flex; align-items: center; gap: 0.04in; background: white; border-radius: 0.03in; padding: 0.03in 0.08in; font-size: 0.11in; font-weight: 600; border: 1px solid #D8DEE4; } .species-tag .sp-dot { width: 0.08in; height: 0.08in; border-radius: 50%; } .outgroup-tag { background: #FFF8F0; border-color: var(--warm); } ``` HTML 示例(12 物种比较基因组学): ```html
Zebrafish distant outgroup
Chicken close outgroup
Mammals
Euarchontoglires
Human Rhesus Mouse Rat Rabbit
Laurasiatheria
Cow Sheep Pig Cat Dog
``` 此组件的结构可适配各类物种分组:植物(单子叶/双子叶)、微生物(革兰氏阳性/阴性)等,只需调整 clade-label 和颜色。 --- ## 分阶段流程图(Pipeline) 采用 3 阶段分层设计,避免反复的分支箭头。每个阶段有独立视觉风格: - **Stage 1(实验)**:深色渐变背景,用 `→` 串联实验步骤 - **Stage 2(数据处理)**:浅灰背景,tool-tag 标签展示软件工具 - **Stage 3(多维分析)**:白底蓝边分组框,内含 2×N 网格的分析卡片 ``` ┌─────────────────────────────┐ │ Stage 1 — Experiment │ ← 深色渐变 (stage-exp) │ 实验步骤 → 用箭头串联 │ └──────────────┬──────────────┘ ▼ ┌─────────────────────────────┐ │ Stage 2 — Data Processing │ ← 浅灰背景 (stage-proc) │ 处理步骤 + tool-tag 标签 │ └──────────────┬──────────────┘ ▼ ┌─ Stage 3 — Analysis ────────┐ ← 白底蓝边 (stage-analysis) │ ┌─────────┐ ┌─────────┐ │ │ │ Card 1 │ │ Card 2 │ │ ← analysis-card 网格 │ ├─────────┤ ├─────────┤ │ 每张卡片不同色彩左边框 │ │ Card 3 │ │ Card 4 │ │ │ ├─────────┤ ├─────────┤ │ │ │ Card 5 │ │ Card 6 │ │ │ └─────────┘ └─────────┘ │ └──────────────────────────────┘ ``` ### CSS ```css .pipeline { display: flex; flex-direction: column; gap: 0; margin: 0.1in 0; } .pipeline-stage { position: relative; padding: 0.14in; border-radius: 0.06in; margin-bottom: 0; } .pipeline-stage.stage-exp { background: linear-gradient(135deg, var(--secondary), var(--primary)); color: white; } .pipeline-stage.stage-proc { background: var(--bg-light); border: 1.5px solid #D0D7DE; } .pipeline-stage.stage-analysis { background: white; border: 2px solid var(--secondary); } .stage-label { font-size: 0.1in; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 0.08in; opacity: 0.7; } .stage-exp .stage-label { color: rgba(255,255,255,0.7); } .stage-proc .stage-label { color: var(--text-muted); } .stage-analysis .stage-label { color: var(--secondary); } .stage-title { font-family: 'Playfair Display', serif; font-size: 0.2in; font-weight: 700; margin-bottom: 0.04in; } .stage-exp .stage-title { color: white; } .stage-proc .stage-title { color: var(--primary); } .stage-detail { font-size: 0.12in; opacity: 0.8; line-height: 1.5; } .stage-exp .stage-detail { color: rgba(255,255,255,0.8); } .stage-proc .stage-detail { color: var(--text-muted); } .stage-tools { display: inline-flex; flex-wrap: wrap; gap: 0.04in; margin-top: 0.05in; } .tool-tag { display: inline-block; font-size: 0.1in; font-weight: 600; padding: 0.02in 0.07in; border-radius: 3px; letter-spacing: 0.3px; } .stage-exp .tool-tag { background: rgba(255,255,255,0.18); color: white; } .stage-proc .tool-tag { background: white; color: var(--secondary); border: 1px solid #D0D7DE; } /* 阶段间连接线 */ .pipeline-connector { display: flex; justify-content: center; padding: 0.04in 0; } .pipeline-connector .conn-line { width: 2px; height: 0.14in; background: var(--secondary); position: relative; } .pipeline-connector .conn-line::after { content: ''; position: absolute; bottom: -4px; left: -3.5px; border-left: 4.5px solid transparent; border-right: 4.5px solid transparent; border-top: 5px solid var(--secondary); } /* 分析卡片网格 */ .analysis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.08in; } .analysis-card { background: var(--bg-light); border-radius: 0.05in; padding: 0.1in; border-left: 3px solid var(--accent); } .analysis-card .ac-name { font-size: 0.13in; font-weight: 700; color: var(--primary); margin-bottom: 0.03in; } .analysis-card .ac-tools { font-size: 0.1in; color: var(--text-muted); line-height: 1.4; } ``` ### HTML 示例 ```html
Stage 1 — Experiment
Dilution Hi-C + RNA-seq
Formaldehyde crosslinking → HindIII digestion → Biotin ligation → Sequencing
Stage 2 — Data Processing
Mapping → Filtering → Normalization
Bowtie2 Hiclib ICE
Stage 3 — Multi-dimensional Analysis
A/B Compartments
PCA, AB index, Phylo-HMGP
TAD Calling
DomainCaller (DI + HMM)
``` 分析卡片数量按论文实际分析维度调整(常见 4–6 张),每张卡片可通过 `border-left-color` 赋予独立色彩以区分不同分析类型。 --- ## 折叠图表 海报使用 **原图**(`figures/fig{N}.png`)。关键 Figure 用 `
` 默认展开,次要 Figure 折叠。 ```css details.fig-collapse { margin-top: 0.12in; border: 1px solid #D8DEE4; border-radius: 0.06in; overflow: hidden; } details.fig-collapse summary { background: var(--bg-light); padding: 0.1in 0.14in; font-weight: 700; font-size: 0.14in; color: var(--secondary); cursor: pointer; display: flex; align-items: center; gap: 0.08in; list-style: none; } details.fig-collapse summary::-webkit-details-marker { display: none; } details.fig-collapse summary::before { content: '\25B8'; font-size: 0.16in; color: var(--accent); transition: transform 0.2s; display: inline-block; } details.fig-collapse[open] summary::before { transform: rotate(90deg); } .fig-image-container { text-align: center; margin: 0.08in 0; border: 1px solid #E0E4E8; border-radius: 0.04in; overflow: hidden; } .fig-image-container img { max-width: 100%; height: auto; display: block; margin: 0 auto; cursor: zoom-in; transition: opacity 0.2s; } .fig-image-container img:hover { opacity: 0.85; } .fig-caption { font-size: 0.12in; color: var(--text-muted); padding: 0.06in; background: var(--bg-light); text-align: left; line-height: 1.5; } ``` ```html
Figure 1 — 标题
Figure 1
图注
Figure 2 — 标题 ...
``` --- ## Lightbox 放大查看 ```html ``` ```css .lightbox-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.88); z-index: 9999; justify-content: center; align-items: center; cursor: zoom-out; } .lightbox-overlay.active { display: flex; } .lightbox-overlay img { max-width: 92%; max-height: 92%; object-fit: contain; border-radius: 4px; box-shadow: 0 8px 40px rgba(0,0,0,0.5); } ``` ```javascript (function(){ var overlay = document.getElementById('lightbox'); var lbImg = document.getElementById('lightbox-img'); document.querySelectorAll('.fig-image-container img').forEach(function(img){ img.addEventListener('click', function(){ lbImg.src = this.src; lbImg.alt = this.alt; overlay.classList.add('active'); }); }); overlay.addEventListener('click', function(){ overlay.classList.remove('active'); }); document.addEventListener('keydown', function(e){ if(e.key === 'Escape') overlay.classList.remove('active'); }); })(); ``` --- ## Footer ```css .footer { background: var(--primary); padding: 0.25in 0.55in; display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 0.4in; color: rgba(255,255,255,0.8); font-size: 0.13in; line-height: 1.6; } .footer strong { color: var(--gold); font-size: 0.14in; letter-spacing: 1px; text-transform: uppercase; } .footer a { color: var(--accent); text-decoration: none; } ``` ```html ``` --- ## 中英文双语切换 ### 按钮样式 ```css .lang-switch { position: fixed; top: 0.2in; right: 0.3in; z-index: 100; display: flex; gap: 0; background: rgba(255,255,255,0.97); border-radius: 6px; box-shadow: 0 2px 16px rgba(0,0,0,0.18); overflow: hidden; border: 1px solid #D0D7DE; } .lang-btn { border: none; background: transparent; padding: 8px 18px; font-size: 15px; font-weight: 700; color: var(--text-muted); cursor: pointer; transition: all 0.2s; } .lang-btn:hover { color: var(--secondary); background: var(--bg-light); } .lang-btn.active { background: var(--secondary); color: white; } ``` ### HTML 标记 ```html

Introduction

研究背景

``` 无需双语标记的元素:数字/统计值、图片、DOI、作者姓名。 ### JS 切换逻辑 ```javascript (function(){ var btns = document.querySelectorAll('.lang-btn'); btns.forEach(function(btn){ btn.addEventListener('click', function(){ var lang = this.dataset.target; document.querySelectorAll('[data-lang]').forEach(function(el){ el.style.display = el.dataset.lang === lang ? '' : 'none'; }); btns.forEach(function(b){ b.classList.remove('active'); }); this.classList.add('active'); }); }); document.querySelectorAll('[data-lang="zh"]').forEach(function(el){ el.style.display = 'none'; }); })(); ``` --- ## 打印与预览 ```css @media print { body { background: white; padding: 0; } .poster { box-shadow: none; } details.fig-collapse[open] { break-inside: avoid; } .lang-switch { display: none; } -webkit-print-color-adjust: exact; print-color-adjust: exact; } ``` ```bash python3 -m http.server 8765 # 访问 http://localhost:8765/papers/{Author}{Year}/poster.html ``` --- ## 特殊字符速查 | 字符 | HTML 实体 | CSS content | 用途 | |------|----------|-------------|------| | ▸ | `▸` | `\25B8` | 折叠箭头 | | → | `→` | `\2192` | 右箭头 | | — | `—` | `\2014` | 破折号 | | × | `×` | - | 乘号 | | ≥ | `≥` | - | 大于等于 | | ≤ | `≤` | - | 小于等于 |