应使用语义化包裹教育背景,学校用、时间用、专业等用或带aria-label的,布局采用Flexbox而非浮动或绝对定位,并适配字体缩放与无障碍访问。

用语义化 <section></section> 包裹教育背景,别用 <div>
<p>教育背景不是装饰性区块,而是有明确含义的文档结构。浏览器、屏幕阅读器和搜索引擎都依赖语义标签理解内容层级。<code><section></section> 比 <div> 更准确,因为它表示“带标题的独立内容组”。如果简历里只有一段教育经历,用 <code><section></section>;有多段,每段用一个 <section></section>,外层再套一个 <section></section> 并加 aria-labelledby 提升可访问性。
常见错误是直接堆 <div class="edu-item">,结果对辅助技术“不可见”。更糟的是用 <code><table> 排版——表格该用于真正二维数据,不是控制位置。
<h3>学校、专业、时间必须用对应语义标签,别全塞进 <code><p></p>
把“北京大学 | 计算机科学与技术 | 2018–2022”写成一行 <p></p> 看似省事,实则丢失结构信息。正确做法是:
- 学校名用
<h4></h4>(它是该段教育经历的主标题) - 专业用
<p></p>或<span></span>+aria-label="专业",避免嵌套标题 - 时间用
<time datetime="2018-09/2022-06">2018年9月 – 2022年6月</time>,datetime属性值必须是机器可解析格式(如YYYY-MM),方便日历工具或 ATS 解析
不加 <time></time> 标签,ATS(招聘系统)可能把“2022年6月”识别成普通文本,无法提取毕业时间。
立即学习“前端免费学习笔记(深入)”;
CSS 排版优先用 Flexbox,禁用浮动和绝对定位
教育模块常需“学校左对齐、时间右对齐”,但别用 float: right 或 position: absolute ——它们破坏文档流,响应式时极易错位。正确方式是:
- 外层
<section></section>设display: flex; justify-content: space-between; - 把
<h4></h4>和<time></time>放在同级,中间用空<span></span>占位或flex-grow分配空间 - 多行内容(如专业+ GPA+ 相关课程)用嵌套
display: flex; flex-direction: column;
示例结构:
<section>
<h4>清华大学</h4>
<div style="display: flex; flex-direction: column;">
<p>软件工程(GPA: 3.7/4.0)</p>
<p>核心课程:数据结构、操作系统、算法设计</p>
</div>
<time datetime="2020-09/2024-06">2020年9月 – 2024年6月</time>
</section>
移动端断点要测试真实字体缩放,不止 viewport 宽度
很多简历在手机上看文字挤成一团,问题不在没写 @media,而在忽略了用户系统级字体设置。iOS 和 Android 允许用户全局放大字体,这时 font-size: 1rem 可能被放大到 20px 以上,导致时间标签换行或溢出。
- 用
clamp(0.875rem, 4vw, 1rem)替代固定rem,让字号在最小/最大间弹性变化 - 给
<time></time>加white-space: nowrap;防止年份被拆开(如“2022 –”换行) - 在 Chrome DevTools 里打开「Rendering」面板,勾选「Emulate CSS media features」→「forced colors」和「prefers-reduced-motion」,提前暴露兼容问题
最易被忽略的一点:教育模块里的学位名称(如“学士”“硕士”)如果用了图标字体或 SVG 小图标,务必加 aria-hidden="true",否则屏幕阅读器会念出“icon bachelor”,造成干扰。



















