下面我将为你提供一个从零到一的详细制作指南,包含设计思路、完整代码、以及如何部署上线。

(图片来源网络,侵删)
第一步:准备工作
-
获取 Bootstrap
- 最简单的方式是通过 CDN(内容分发网络)引入,你只需要在 HTML 文件的
<head>部分添加以下两行代码即可,这样新建一个 HTML 文件就能开始。
<!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- Bootstrap Icons (可选,但推荐) --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.2/font/bootstrap-icons.min.css">
- 最简单的方式是通过 CDN(内容分发网络)引入,你只需要在 HTML 文件的
-
规划简历内容
- 在写代码前,先用笔或思维导图规划一下你的简历模块,一个典型的简历结构如下:
- 个人信息区: 姓名、职位、联系方式、头像/社交媒体链接。
- 个人简介/自我评价: 一段简短的自我介绍。
- 工作经历: 公司名称、职位、工作时间、工作职责和成就。
- 教育背景: 学校、专业、学历、就读时间。
- 专业技能: 技能列表,如编程语言、软件、语言能力等。
- 项目经历: 项目名称、项目描述、你的角色、使用的技术。
- 证书/奖项: 获得的证书或奖项。
- 在写代码前,先用笔或思维导图规划一下你的简历模块,一个典型的简历结构如下:
第二步:搭建页面结构与样式
我们将使用 Bootstrap 的网格系统来创建一个经典的两栏布局:左侧是个人信息和技能,右侧是工作经历和教育背景。
整体布局
使用 container 作为最外层容器,内部用 row 和 col-md-4 / col-md-8 来创建左右两栏。

(图片来源网络,侵删)
col-md-4:在中等屏幕尺寸以上(如桌面)占据 4/12 的宽度,适合放个人信息。col-md-8:占据 8/12 的宽度,适合放工作经历等详细内容。
个人信息区
- 头像: 使用
<img>标签,并用rounded-circle类使其变成圆形。 - 姓名: 使用
<h1>标签,display-4类可以使其字号更大、更醒目。 - 联系方式: 使用
<p>标签,并用mb-1(margin-bottom: 0.25rem) 控制间距,可以加入 Bootstrap Icons 让其更美观。
技能区
- 使用
<ul>列表展示技能。 - 可以用
<badge>标签来突出显示技能等级,bg-primary(蓝色)、bg-success(绿色)。
工作/教育经历区
- 使用 时间轴 的形式来展示,这样逻辑最清晰。
- 每个经历用一个
<div>包裹,用border-start和ps-4(padding-left) 来创建视觉上的时间线效果。
第三步:完整代码示例
下面是一个完整的、可以直接复制使用的 HTML 文件,你只需要修改其中的文本和链接内容即可。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">张三 - 前端开发工程师</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.2/font/bootstrap-icons.min.css">
<style>
/* 自定义样式 */
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background-color: #f8f9fa;
color: #333;
}
.resume-container {
padding: 2rem 0;
}
.profile-img {
width: 150px;
height: 150px;
object-fit: cover;
border: 5px solid #fff;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.contact-info a {
color: #333;
text-decoration: none;
margin-right: 15px;
}
.contact-info a:hover {
color: #0d6efd;
}
.timeline {
position: relative;
padding-left: 2rem;
}
.timeline::before {
content: '';
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 2px;
background-color: #dee2e6;
}
.timeline-item {
position: relative;
padding-bottom: 1.5rem;
}
.timeline-item::before {
content: '';
position: absolute;
left: -2.25rem;
top: 0.5rem;
width: 12px;
height: 12px;
border-radius: 50%;
background-color: #0d6efd;
border: 2px solid #fff;
box-shadow: 0 0 0 2px #dee2e6;
}
.section-title {
border-bottom: 2px solid #0d6efd;
padding-bottom: 0.5rem;
margin-bottom: 1.5rem;
color: #0d6efd;
}
.skill-badge {
margin-right: 0.5rem;
margin-bottom: 0.5rem;
}
</style>
</head>
<body>
<div class="container resume-container">
<div class="row">
<!-- 左侧栏:个人信息 -->
<div class="col-lg-4 col-md-5">
<div class="text-center mb-4">
<img src="https://i.pravatar.cc/150?img=58" alt="张三头像" class="profile-img mb-3">
<h1 class="display-5 fw-bold">张三</h1>
<p class="lead text-muted">前端开发工程师</p>
</div>
<div class="contact-info mb-4">
<p><i class="bi bi-telephone"></i> 138-8888-8888</p>
<p><i class="bi bi-envelope"></i> zhangsan@example.com</p>
<p><i class="bi bi-geo-alt"></i> 北京市朝阳区</p>
<a href="https://github.com" target="_blank"><i class="bi bi-github"></i> GitHub</a>
<a href="https://linkedin.com" target="_blank"><i class="bi bi-linkedin"></i> LinkedIn</a>
</div>
<div class="mb-4">
<h3 class="section-title">个人简介</h3>
<p>拥有5年前端开发经验,精通 React 和 Vue 等现代前端框架,热爱技术,注重用户体验,有良好的代码风格和团队协作能力,致力于构建高性能、易维护的 Web 应用。</p>
</div>
<div>
<h3 class="section-title">专业技能</h3>
<span class="badge bg-primary skill-badge">HTML5</span>
<span class="badge bg-primary skill-badge">CSS3 / SASS</span>
<span class="badge bg-primary skill-badge">JavaScript (ES6+)</span>
<span class="badge bg-primary skill-badge">TypeScript</span>
<span class="badge bg-success skill-badge">React</span>
<span class="badge bg-success skill-badge">Vue.js</span>
<span class="badge bg-info skill-badge">Webpack</span>
<span class="badge bg-info skill-badge">Git</span>
<span class="badge bg-warning text-dark skill-badge">Node.js</span>
</div>
</div>
<!-- 右侧栏:工作经历与教育背景 -->
<div class="col-lg-8 col-md-7">
<!-- 工作经历 -->
<section class="mb-5">
<h2 class="section-title">工作经历</h2>
<div class="timeline">
<div class="timeline-item">
<h4>高级前端开发工程师</h4>
<h5 class="text-primary">ABC科技有限公司</h5>
<p class="text-muted mb-2">2025.03 - 至今</p>
<ul>
<li>负责公司核心产品“智慧云平台”的前端架构设计与开发,使用 React + TypeScript 技术栈。</li>
<li>主导组件库的搭建与维护,提升了团队开发效率约30%。</li>
<li>优化前端性能,将首屏加载时间从3秒缩短至1.2秒,用户体验显著提升。</li>
<li>与后端、产品、设计团队紧密协作,确保项目按时高质量交付。</li>
</ul>
</div>
<div class="timeline-item">
<h4>前端开发工程师</h4>
<h5 class="text-primary">XYZ互联网公司</h5>
<p class="text-muted mb-2">2025.07 - 2025.02</p>
<ul>
<li>参与电商平台“优购商城”的开发与维护,主要负责商品详情页和购物车模块。</li>
<li>使用 Vue.js 全家桶进行开发,熟练运用 Vuex 进行状态管理。</li>
<li>编写单元测试,保证了核心模块的代码质量和稳定性。</li>
</ul>
</div>
</div>
</section>
<!-- 项目经历 -->
<section class="mb-5">
<h2 class="section-title">项目经历</h2>
<div class="timeline">
<div class="timeline-item">
<h4>在线数据可视化平台</h4>
<p class="text-muted mb-2">2025.05 - 2025.10</p>
<p>这是一个为企业提供数据可视化解决方案的 SaaS 平台,我作为前端负责人,主要工作包括:</p>
<ul>
<li>使用 ECharts 和 D3.js 实现了多种复杂图表组件,支持动态数据渲染和交互。</li>
<li>设计并实现了拖拽式的图表配置器,用户可以自由组合图表创建看板。</li>
</ul>
</div>
</div>
</section>
<!-- 教育背景 -->
<section class="mb-5">
<h2 class="section-title">教育背景</h2>
<div class="timeline">
<div class="timeline-item">
<h4>计算机科学与技术</h4>
<h5 class="text-primary">北京理工大学</h5>
<p class="text-muted">本科 | 2025.09 - 2025.06</p>
</div>
</div>
</section>
</div>
</div>
</div>
<!-- Bootstrap JS (Popper.js is included) -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
第四步:代码解析与自定义
-
CDN 引入:
- 在
<head>中,我们引入了 Bootstrap 的 CSS 和 Bootstrap Icons 的 CSS,Icons 让你的简历看起来更专业。 - 在
<body>结束前,引入了 Bootstrap 的 JS Bundle,它包含了 Popper.js,这对于一些交互组件(如下拉菜单)是必需的。
- 在
-
自定义
<style>:- 虽然Bootstrap提供了大量样式,但简历需要一些个性化设计,我们使用
<style>标签来添加自定义CSS。 profile-img: 设置头像的样式,如大小、圆角、阴影。timeline: 这是时间轴的核心,我们用:before伪元素创建了一条垂直线。timeline-item: 每个时间点,我们用:before伪元素在垂直线上画了一个小圆点,作为时间点的标记。section-title: 为每个大标题添加了下划线,使其更突出。skill-badge: 为技能徽章添加了外边距,让它们排列更美观。
- 虽然Bootstrap提供了大量样式,但简历需要一些个性化设计,我们使用
-
如何修改:
(图片来源网络,侵删)- 个人信息: 修改
<h1>,<p>,<img src="...">里的内容。 - 联系方式: 修改
<p>标签内的文字和<a>标签的href属性。 - 工作/项目/教育经历: 复制
<div class="timeline-item">整个块,然后修改里面的<h4>,<h5>,<p>,<ul>内容即可,这样能保持时间轴样式的统一。
- 个人信息: 修改
第五步:部署与分享
制作完成后,你需要让你的简历可以在线访问。
使用 GitHub Pages (推荐,免费且专业)
-
创建 GitHub 仓库:
- 登录 GitHub,创建一个新的公开仓库,命名为
yourname-resume或类似的名字。
- 登录 GitHub,创建一个新的公开仓库,命名为
-
上传文件:
- 将你写好的 HTML 文件(
index.html)以及任何相关的图片(如果你把图片放在本地而不是用在线链接)上传到这个仓库的根目录。
- 将你写好的 HTML 文件(
-
启用 GitHub Pages:
- 进入你的仓库页面,点击
Settings。 - 在左侧菜单中找到并点击
Pages。 - 在
Source部分,选择Deploy from a branch,选择main(或master) 分支,以及/ (root)目录。 - 点击
Save。 - 几分钟后,GitHub 会自动构建你的页面,你会在页面上看到一个网址,格式通常是
https://yourname.github.io/yourname-resume/,这就是你的在线简历地址!
- 进入你的仓库页面,点击
使用 Netlify (简单快捷)
-
拖拽上传:
- 访问 netlify.com,注册一个免费账户。
- 将你的
index.html文件直接拖拽到网页的指定区域。
-
自动部署:
- Netlify 会自动识别你的 HTML 文件并生成一个随机的
.netlify.app域名,你也可以在设置中绑定自己的自定义域名。
- Netlify 会自动识别你的 HTML 文件并生成一个随机的
使用在线代码编辑器 (如 CodePen, JSFiddle)
- 你可以将 HTML, CSS, JS 代码分别粘贴到 CodePen 的对应区域中。
- CodePen 会实时生成一个预览链接,你可以将这个链接分享给别人,这种方式适合快速展示,但不适合作为长期的个人简历地址。
高级技巧与建议
- 暗黑模式: 可以添加一个按钮,通过 JavaScript 切换
<body>的一个类(如dark-mode),然后为这个类编写对应的 CSS 变量或样式,实现一键切换明暗主题。 - PDF 导出: 你可以在简历页面上添加一个“下载 PDF”按钮,用户点击后,可以使用浏览器的打印功能(
Ctrl+P或Cmd+P),然后在“目标”中选择“另存为 PDF”来生成一个漂亮的 PDF 版本简历。 - 动画效果: 可以使用 Bootstrap 的
Collapse组件或 AOS (Animate On Scroll) 库,让页面在滚动时有平滑的动画效果,增加视觉吸引力。 - 保持简洁: 简历不是个人作品集,内容应精炼、突出重点,一页纸为佳,最多不超过两页。
希望这份详细的指南能帮助你制作出一份出色的网页版简历!祝你成功!
