Bootstrap 1.0 到 5.x 的演进是解决前端真实痛点的过程:v1 为内部样式统一,v2 引入响应式模块,v3 确立移动优先架构,v4 改用 Sass 并支持 flex 开关,v5 彻底移除 jQuery 并启用 CSS 变量与 RTL 支持。
Bootstrap 不是凭空长出来的“标准”,它每一步演进都对应着前端真实痛点的解决。2011 年初代 Twitter Blueprint 只为统一 Twitter 内部按钮、表单和栅格样式,连响应式都是靠手动写 @media 媒体查询硬凑的;到了 v2.0(2012),responsive.css 才真正成为独立模块,首次让“一套代码适配手机+桌面”变成可落地的事。
v3.0(2013)把“移动优先”写进架构底层——所有断点默认按最小屏定义,col-sm-6 意味着“在小屏及以上才占半宽”,而不是“仅在小屏生效”。这直接改变了开发者写 CSS 的思维顺序:先写移动端样式,再用 col-md-、col-lg- 逐级增强。很多人升级时踩坑,就是因为沿用 v2 的写法,在 v3 里发现小屏布局全乱了。
v4(2018)放弃 Less 改用 Sass,不只是换预处理器——scss/_variables.scss 里的 $enable-flex 开关,意味着你能一键切回 float 布局兼容老项目;v5(2021)移除 jQuery 更彻底:js/src/modal.js 全部重写为原生 EventTarget + CustomEvent,体积减 40%,但所有自定义事件名也变了,比如 show.bs.modal 还在,而旧插件里依赖 $.fn.modal 的封装层必须重写。
当前最新稳定版(v5.3+)默认启用 CSS 变量,--bs-primary 这类变量能直接在 JS 里读取,但 IE11 完全不支持;RTL(从右到左)布局已内置,但需显式加 dir="rtl" 才触发;Offcanvas 组件虽好,但它依赖 transform: translateX(),在低端安卓 WebView 里可能有渲染延迟。这些不是文档末尾的“注意事项”,而是上线前必须验证的真实边界。