必须用,因其语义明确表达有序事件流,确保读屏器按序导航、SEO正确抓取顺序、打印保留编号;表示无序,完全丢失结构,均不可替代。

必须用 时间轴本质是「有明确先后顺序的事件流」, 填错 给 实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。 不是靠“懒加载”,而是控制 DOM 节点数。一次性渲染 100 个 真正难的不是画出那条线,而是让每个 ,不是 也不是一堆 为什么只能用
而不能用 或 的语义就是 ordered list,浏览器、屏幕阅读器、搜索引擎都按这个逻辑处理:自动编号、键盘 tab 按序跳转、纯文本环境仍保留 1. 2. 3. 的可读性。 表示无序,一旦后端数据错位或 JS 渲染失败,用户根本意识不到时间线已经崩了;
可直接倒序展示“最近 5 条”,不用 JS 排序或后端改 SQL 内必须用 ,不能只写 —— 后者机器无法解析,日历插件、SEO、甚至部分浏览器的“添加到日历”功能都会失效,别在 里再套三四层
的 datetime 属性怎么填才不翻车datetime 是最隐蔽也最致命的坑:页面看着正常,但所有依赖时间语义的功能全失效。必须严格遵循 ISO 8601 标准,不能靠肉眼判断“差不多”。
datetime="2024-03-15","2024/03/15" 或 "2024年3月" 是无效值datetime="2024-03",但 "2024-3"(缺零)不行T,如 datetime="2024-03-15T14:30:00";"14:30" 或 "2:30 PM" 不被识别datetime="2024-03-15T14:30:00+08:00","GMT+8" 不是标准写法,部分解析器直接忽略"2024/03/15"?前端得先转:new Date("2024/03/15").toISOString().split('T')[0] 再塞进 datetime
CSS 画竖线和圆点,为什么不能用
border-left
加 border-left: 2px solid #ccc 看似省事,实际会引发三类问题:缩放时竖线偏移、节点悬停左右抖动、打印时整条线错位。因为 border 是盒模型的一部分,会影响所有子元素的布局计算。
伪元素:设 ::before
position: absolute; top: 0; left: 50%; transform: translateX(-50%); height: 100%; width: 2px;
:position: absolute; width: 12px; height: 12px; border-radius: 50%; background: #4a90e2;,定位锚定在中线上,不占空间也不扰流zoom: 1 触发 hasLayout,否则 zoom=125% 时伪元素可能消失li:nth-child(odd) 和 li:nth-child(even) 控制 text-align 和内边距,别用 JS 判断奇偶长列表(100+ 条)时间轴怎么避免滚动卡顿
会明显拖慢首屏,但又不能简单分页——用户需要滑动浏览连续时间流。
IntersectionObserver 替代 scroll 监听,轻量且性能好 占位IntersectionObserver 实例,用 observe() 批量注册,别给每个 单独绑实例fetch() 按需加载对应数据并替换占位符,避免预加载全部内容 在缩放、打印、读屏、IE11、移动端、长列表各种场景下,依然保持位置精准、语义清晰、DOM 干净——这些细节没压住,时间轴就只是个好看但不可靠的装饰品。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










