历经三年开发,前端框架Bootstrap 4正式发布了。然而今天的Web世界已经和当初Mark Otto发布Bootstrap时的情况大为不同,一些开发者由此质疑它的更新是否还有意义。

V4版本的主要更新有:

  • 改进的网格系统(默认情况下为Flexbox)
  • 现在使用Sass(取代了Less)
  • 不支持IE8、IE9和iOS 6
  • 重写JavaScript插件
  • 现在使用rem取代了px。

准备从V3版本升级的开发人员需要先做测试,可能还要解决一些问题。新版整体上和旧版接近,但多了一些突破性的变化。一份迁移指南列出了变化内容的详情。

Bootstrap的优势之一是其网格系统。这一系统为网页提供了一种可声明的方式来渲染网格系统中的内容,不需要额外的步骤就能使流式内容兼容桌面端和移动端。Bootstrap 4的网格系统使用的是几乎所有的现代浏览器都支持的flexbox。因为引入了这一更新等原因,新版只支持IE10 以上和iOS7 以上。如果项目仍需兼容旧式浏览器,开发人员就要继续使用Bootstrap 3。但是,Bootstrap 3的维护已经在2016年结束了

Bootstrap最初于2011年发布,当初是作为Twitter的一个产品诞生的,号称是“世界上最流行的HTML、CSS和JS库”,但其增长趋势如今似乎已经到头了。Dan Tao等人曾批评Boostrap的紧耦合和缺乏语义的缺陷:

最早看来很棒的一堆开发组件,如今演变成了堆积如山的技术债务。开发者的HTML充斥着带有Bootstrap特定属性的深度嵌套结构。

V4的第一个alpha版本发布于2015年8月,两年后发布了第一个beta版本。但Bootstrap 4是否生不逢时?它的网格系统是最大的卖点之一,但主流浏览器普遍采用CSS 网格,意味着Bootstrap 4新引入的,基于flexbox的网格已经过时了。

Natalya Shelburne是纽约时报的一位软件工程师,她认为CSS网格才是未来:

CSS网格不是什么黑客工具,它是一个很好的web布局工具。什么都不用安装,也不需要预处理器,更用不着为了理解它的运作机制而绞尽脑汁。

此外,Ryan Oglesby则认为,使用基于组件的样式技术(如经常与React或Vue.js一起使用的技术),就不需要传统的“全局CSS”技术了:

在React或Vue.js等UI库的帮助下,现代Web应用程序体系结构已经采用了松耦合,高内聚的组件,这些组件通常将HTML,CSS和JavaScript放在同一个文件中。

当然,如果开发者想要做一些美观漂亮、运行迅速的内容,Bootstrap的JavaScript插件(比如Popover和Form控件)仍是首选的框架。

Bootstrap 4正式发布还有意义吗?的更多相关文章

  1. Bootstrap4 正式发布

    历经三年开发,前端框架Bootstrap 4正式发布了.然而今天的Web世界已经和当初Mark Otto发布Bootstrap时的情况大为不同,一些开发者由此质疑它的更新是否还有意义 1.V4版本的主 ...

  2. Ruby Rails学习中:网站导航,Bootstrap和自定义的CSS,局部视图

    添加一些结构 一.网站导航 1.添加一些结构后的网站布局文件 打开文件:app/views/layouts/application.html.erb 简单介绍一下,添加的代码: 我们从上往下看一下这段 ...

  3. HTML Imports

    为什么需要导入? 先想想你在 web 上是如何加载不同类型的资源.对于 JS,我们有 <script src>.<link rel="stylesheet"> ...

  4. Twitter Bootstrap 3.0 正式发布,更好地支持移动端开发

    Twitter Bootstrap 3.0 终于正式发布了.这是一个圆滑的,直观的和强大的移动优先的前端框架,用于更快,更容易的 Web 开发.几乎一切都已经被重新设计和重建,更好的支持移动端设备. ...

  5. bootstrap栅栏系统css中的col-xs-*、col-sm-*、col-md-* 的意义以及 bootstrap一个标签中,同时有 col-xs , col-sm , col-md , col-lg的理解

    摘要: bootstrap栅栏系统css中的col-xs-*.col-sm-*.col-md-* 的意义: .col-xs- 超小屏幕 手机 (<768px) .col-sm- 小屏幕 平板 ( ...

  6. 利用Bootstrap快速搭建个人响应式主页(附演示+源码)

    1.前言 我们每个程序员都渴望搭建自己的技术博客平台与他人进行交流分享,但使用别人的博客模板没有创意.做网站后台的开发人员可能了解前端,可是自己写一个不错的前端还是很费事的.幸好我们有Bootstra ...

  7. 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布

    距离上一篇OpenAuth.net的文章已经有5个多月了,在这段时间里项目得到了很多朋友的认可,开源中国上面的Star数接近300,于是坚定了我做下去的信心.最近稍微清闲点,正式推出1.0版,并在阿里 ...

  8. bootstrap表格分页

    <script src="~/Scripts/jquery.min.js"></script> <script src="~/Scripts ...

  9. AppBox_v2.0完整版免费下载,暨AppBox_v3.0正式发布!

    文章更新: AppBox v6.0中实现子页面和父页面的复杂交互 AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox ...

随机推荐

  1. spring总结之二(Bean作用域、依赖注入)

    ### Bean的作用域:单例(singleton),多例(prototype) 1.单例模式:表示在任何地方使用对象,总是一个(对象是唯一的). (笔面试重点) 饿汉式 public class K ...

  2. AJAX(表单验证)/JSON之一

    ## 什么是Ajax AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). 1. 异步通信:浏览器利用独立的线程与服务器进行通信, ...

  3. PyQt5-多窗口数据传输

    #窗口之间数据传递(通过属性方式) from PyQt5.QtWidgets import QDialogButtonBox, QDateTimeEdit,QDialog,QComboBox,QTab ...

  4. django 模型类的常见字段约束,以及filter 过滤和查询

    null 不设置时默认设置为False.设置为True时,数据库表字段中将存入NULL的记录. null和blank组合使用,null=True,blank=True,表示该字段可以为空 blank ...

  5. Linux内核Socket参数调优

    可调优的内核变量存在两种主要接口:sysctl命令和/proc文件系统,proc中与进程无关的所有信息都被移植到sysfs中.IPV4协议栈的sysctl参数主要是sysctl.net.core.sy ...

  6. 静态代码检查findbugs/阿里巴巴开发规范

    findbugs,基本上三类严重的bug检测出来都是比较准确的,如下: 阿里巴巴开发规范 前面两类都是比较重要的: 参考: https://blog.csdn.net/qq_27093465/arti ...

  7. ssh-keygen 不是内部或外部命令

    如何处理呢? 1.找到Git/usr/bin目录下的ssh-keygen.exe(如果找不到,可以在计算机全局搜索) 2.属性-->高级系统设置-->环境变量-->系统变量,找到Pa ...

  8. poj 2096 Collecting Bugs - 概率与期望 - 动态规划

    Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other material stu ...

  9. Android灯光系统框架分析【转】

    本文转载自: 首先别人的APP要能直接访问到你写的硬件或者不经过任何修改的APP能直接使用你的驱动,就需要使用系统自带的JNI,所以我们需要写出符合系统自带JNI文件的HAL文件和驱动程序,下面具体分 ...

  10. C#开发者工具网

    使用key值[123456]对[50cms]进行对称加密-在线DES对称加密/解密- 开发者工具网  http://tool.sufeinet.com/Encrypt/DesEncrypt.aspx? ...