完全可行,关键在于语义化结构(如section/article)、响应式设计(移动端优先、合理断点)、信息密度控制(技术栈列表化、截图alt精准、状态标注)及工程细节(链接安全、离线可用、打印样式、深色模式)。

直接用 HTML + CSS 做作品集简历完全可行,但关键不是“能不能做”,而是“怎么避免做成花哨却难读、好看却难维护的静态页”。真正影响效果的,是结构语义、响应式断点控制、以及作品卡片的信息密度设计。
用 <section></section> 划分模块,别用 <div> 堆砌<p>浏览器和屏幕阅读器靠语义标签理解内容层级。把“作品集”写成 <code><section aria-labelledby="projects-title"></section>,比 <div class="section-projects"> 更可靠——尤其当你后续加无障碍支持或 SEO 优化时。<ul>
<li>每个作品用 <code><article></article> 包裹,它天然表示独立可分发的内容单元
<h2></h2>(主标题后)或 <h3></h3>(嵌套在 section 内),别为了样式降级成 <span></span> + CSS<h1></h1>:简历首页可以是姓名,作品集模块内用 <h2></h2> 标“我的项目”,每个项目用 <h3></h3>
作品卡片必须包含可访问的链接和明确的技术标注
HR 可能扫一眼就划走,技术面试官会盯死你写的每个技术词。光放个截图+标题远远不够。
- 每个项目链接必须是
<a href="https://example.com" target="_blank" rel="noopener"></a>,漏掉rel="noopener"有安全风险 - 技术栈用无序列表呈现,别塞进一段话里:
<ul class="tech-list"> <li>React</li> <li>TypeScript</li> </ul> - 截图用
<img>时必须带alt,比如alt="Dashboard 页面,含实时数据图表和用户权限切换控件",不能写“项目截图” - 如果项目已下线,显式标注
<span class="status-badge">Demo only</span>,比留个 404 链接更诚实
移动端优先布局,但别迷信 Flex/Grid 一套打天下
作品集在手机上最常被快速滑动浏览,此时卡片宽度、行高、点击热区比动画更重要。
- 默认用
flex-direction: column布局,手机端自然垂直堆叠;桌面端才用flex-direction: row或grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) - 图片高度设为
aspect-ratio: 16/9(现代浏览器),老浏览器 fallback 用 padding-top 百分比技巧 - 禁用
hover独占交互:手机没悬停,所有“点击查看”操作必须有常驻按钮或足够大的点击区域(至少 44×44px) - 字体大小用
rem,根元素font-size在@media (max-width: 768px)下调到14px,防止小屏文字撑破容器
部署前必查三项:链接有效性、离线可用性、打印样式
很多人做完就传 GitHub Pages,结果发现作品链接 404、简历 PDF 打印出来全是乱码、或者深色模式下文字看不见——这些细节直接暴露工程习惯。
- 用
curl -I或在线工具批量检查所有href和src是否返回 200 - 加一个简单的
print.css:隐藏非内容元素(导航、背景图)、强制黑字白底、移除box-shadow,确保 Ctrl+P 能打出干净 PDF - 深色模式适配只需一句:
@media (prefers-color-scheme: dark) { body { background: #1e1e1e; color: #e0e0e0; } },别等用户开暗色才想起这事
最常被跳过的其实是项目描述的动词精度——“参与开发”不如“独立实现登录态持久化与双因素校验流程”,后者哪怕只有两行,也比五张图更有说服力。作品集不是画廊,是能力证据链。











