2015年8月19日对Bootstrap来说是个特别的日子——不仅是项目四周年纪念日,也是经过了一年密集开发之后发布Bootstrap 4内测版的日子。Bootstrap 4是一次重大更新,几乎涉及每行代码。
直到目前为止 github 中更新了六次测试版本,可以正常使用。
个人觉得,jQuery4.0 也应该赶紧到来,不管是ES6还是ES6 还是 TypeScript,在性能上有极大优化,并且利用了浏览器的先天优势。期盼它的到来,永不老。只是猜测,偷笑(0.0)
一、新增功能
Bootstrap 4中有太多重大的更新,本文不能面面俱到,下面是一些颇受关注的亮点:
- 1. 从Less迁移到Sass: 现在,Bootstrap已加入Sass的大家庭中。得益于 Libsass,Bootstrap的编译速度比以前更快;
- 2. 改进网格系统:新增一个网格层适配移动设备,并整顿语义混合。
- 3. 支持选择弹性盒模型(flexbox):这是项划时代的功能——只要修改一 个Boolean变量,就可以利用flexbox的优势快速布局。
- 4. 废弃了wells、thumbnails和panels,使用cards代替:Cards是个全新概 念,但使用起来与wells、thumbnails及panels很像,且更方便。
- 5. 将所有HTML重置样式表整合到Reboot中:在用不了Normalize.css的地 方可以用Reboot了,它提供了更多选项。例如
box-sizing: border-box
、 margin tweaks等都存放在一个单独的 Sass 文件中。 - 6. 新的自定义选项:不再像上个版本一样,将渐变、淡入淡出、阴影等效 果分放在单独的样式表中。而是将所有选项都移到一个Sass变量中。想 要给全局或考虑不到的角落定义一个默认效果?很简单,只要更新变量 值,然后重新编译就可以了。
- 7. 不再支持IE8,使用rem和em单位:放弃对IE8的支持意味着开发者可以 放心地利用CSS的优点,不必研究css hack技巧或回退机制了。使用 rem和em代替px单位,更适合做响应式布局,控制组件大小。如果要支 持IE8,只能继续用Bootstrap 3。
- 8. 重写所有JavaScript插件:为了利用JavaScript的新特性,Bootstrap 4用 ES6重写了所有插件。现在提供UMD支持、泛型拆解方法、选项类型检 查等特性。
- 9. 改进工具提示和popovers自动定位:这部分要感谢Tether工具的帮助。
- 改进文档:所有文档以Markdown格式重写,添加了一些方便的插件组织 示例和代码片段,文档使用起来会更方便,搜索的优化工作也在进行 中。
- 10. 更多变化:支持自定义窗体控件、空白和填充类,此外还包括新的实用 程序类等。
以上更新只是冰山一角, v4版共有1100多次commits和 12万行代码更新,这些更新可以在v4-alpha文档 中查看。
二、开发计划
v4版本所有的源代码都在Github的v4-dev分支上开源。此外,还有一个v4开发和跟踪pr ,公布master的changes列表和待开发列表。大家可以贡献自己的代码,来让这个项目变得更好。
总体的开发和发布计划如下:
还会在不断改进中发布几个alpha版本; 新特性和新功能冻结之后发布两个Beta版本进行充分测试; 发布 2 个候选版本,测试是否能用于生产环境; 发布最终版本。
Slack上还有个专门讨论v4的频道,Bootstrapers可以点击这里加入。
三、支持v3
发布Bootstrap 3时,Bootstrap曾放弃了对2.x版本的支持,给很多用户造成了麻烦,同样的错误不会犯第二次。在不久的将来,开发团队还会继续修复v3的bug,改进文档。v4最终发布之后,v3的文档也不会下线。
四、One more thing……
除了发布Bootstrap 4 alpha外,官方还发布了Bootstrap主题。
这些主题耗费的精力很大,它们自己就有很多工具集,和Bootstrap本身一样。
作为开始,发布的主题有: dashboard, application,和marketing,使用multiple-use license 协议。
点击这里查看更多主题信息。
五、反馈
1)有人提到,在v3.5.5(最后的稳定版本)中,bootstrap.min.css是123KB,而在新的4.0.0alpha bootstrap.min.css 中只有88KB,值得庆祝。
2)有人反馈说dashboard主题并不是完完全全的响应式,比如在tables->order history中。
3)Bootstrap改成默认使用Sass,引起了广泛的讨论。
4)也有人表示,一个组织愿意放弃旧技术(不再支持IE8)用新技术(ES6)来重写库,值得尊敬。