WEB前端开发框架Bootstrap3 VS Foundation5


Posted in Javascript onMay 16, 2016

开发工程师, 使用 Bootstrap. 前端开发人员, 使用 Foundation. 我们来谈谈为什么.

Bootstrap 与 Foundation 有许多关键的区别, 但是, 我想你只需要记住一件事:

ZURB 和 Twitter 的两种设计理念是很清楚的, 从他们对自己的框架的命名就可以看出来: Bootstrap 有引导, 开机自举的意思, 换言之, 它尝试处理你项目中一切所需要的. 而 Foundation 有创建, 创造的意思, 换言之, 它仅仅给你项目中强有力的创造力.

保持这种看法, 现在我来列出两者之间更多的关键区别:

1. UI 元素

Foundation 只安排了有限的几种元素, Bootstrap 则给你了所有你可以想像到的一切元素.

ZURB 对于 Foundation 的设计目标是, 纵然你使用预定义的 UI 元素, 也不应该与大家的网站长的太像.

而另一边, Bootstrap 则试图给你提供所有定义好的 UI 元素.

2. REMs VS Pixels

Foundation 使用 REMs, 而 Bootstrap 使用 Pixels.

使用 Pixels 意味着你不得不准确定义一个组件的高, 宽, 内边距, 外边距, 而且在每一种设备与屏幕尺寸上, 因为不同的设备往往显示效果区别很大.

现在 Foundation 5 使用 REMs, 而不是 EM. 这样, 避免了 EM cascade 问题.

使用 REMs 意味着你可以直接用 font-size: 80%; 就可以让整个组件和它的子组件缩小 20%.

值得说明的是, 通过 REMs, 你可以脱离 Pixels 的细节了, 所以, 使用 REMs 来处理是非常值得的.

Foundation 还提供了 sass 的 mixin 方法来将 Pixels 转换为 REMs, 这样, 你还可以继续使用 Pixels 的思考方式来定义页面:

.element {
 width: rem-calc(10px); // will be converted to REMs
}

3. 灵活的网格 VS 预定义的网格

Foundation 的网格可以自动适配当前浏览器的宽度. Boostrap 则是预定义了几种网格尺寸来适配主流的设备和屏幕.

Bootstrap 会在你改变浏览器宽度的时候突然改变它的网格.

Foundation 则会灵活适配当前的浏览器宽度, 这是一种新的技术手段, 自动适配的同时, 可以表现的与 Transformer 一样的效果.

Foundation 当网格改变时有两个要点: 小, 中和大. 所有的操作都只有缩小和放大, 并适应于当前浏览器的宽度. 不需要预定义的屏幕大小, 并且更主要的原因是, 鼓励你去根据屏幕的大小来定义不同的样式.

使用 Bootstrap, 你得到一个固定的或者说流形的网格, 这意味着你需要分别设定或者说对于网格容器不是一个预定义好的宽度.

使用 Foundation 和 Sass, 你可以自由调整最大的网格的大小( 中型的和小型的自动被计算 ), 大屏幕的列数, 小屏幕的列数.

4. 移动设备优先 VS 也支持移动设备

Foundation 设计时已经考虑了任何四角屏幕. 而 Bootstrap 设计时则预先分为: 手机, 平板, 台式机和超大屏幕的台式机.

构建一个优先支持移动设备的网站意味着它肯定在更大的屏幕上是可用的. 所以, Foundation 鼓励你这样去做: 移动优先.

如果你使用 Foundation 的 Sass Media Query Mixin, 你就会发现, 没有特定的 Media Query 来查询什么是移动设备, 而是你使用 Media Query 来定义在更大的屏幕下应该怎么显示.

设计东西时先考虑台式机的话很可能在支持更小屏幕时遇到很大问题, 和先考虑手机的话, 将会让你专注于什么是对用户最重要的, 让你空间提用感上升.

5. 社区

Bootstrap 有一个更大的社区. 而使用 Foundation 你就不得不自力更生一些.

Bootstrap 非常大的亮点就是社区. 这是一个非常巨大, 包罗万象, 几乎找啥都可以找到.

如果你选择了 Foundation, 自力更生可能就是你不得不掌握的了. 几乎所有的解决方法都是为 Bootstrap 的, 你只能自己再去构建自己的.

结论

问你自己几个问题:

你想让某个东西更加易用或者让它更具生活气息?
你想组织自己的 CSS, 只是让它成为你的基础组件?
答案分别是: Bootstrap. Foundation.

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

是不是很有趣的比较,希望对大家了解前端框架Bootstrap 3 和 Foundation 5 有所帮助。

Javascript 相关文章推荐
javascript 对表格的行和列都能加亮显示
Dec 26 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
Dec 10 Javascript
VS2008中使用JavaScript调用WebServices
Dec 18 Javascript
JavaScript调试工具汇总
Dec 23 Javascript
javascript高级编程之函数表达式 递归和闭包函数
Nov 29 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
Dec 10 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
Aug 01 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
JS+H5 Canvas实现时钟效果
Jul 20 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
May 16 #Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 #Javascript
Bootstrap所支持的表单控件实例详解
May 16 #Javascript
移动端横屏的JS代码(beta)
May 16 #Javascript
js实现带农历和八字等信息的日历特效
May 16 #Javascript
jQuery 常用代码集锦(必看篇)
May 16 #Javascript
阻止表单提交按钮多次提交的完美解决方法
May 16 #Javascript
You might like
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
php 归并排序 数组交集
2011/05/10 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
python实现杨氏矩阵查找
2019/03/02 Python
python实现矩阵打印
2019/03/02 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
python 创建一维的0向量实例
2019/12/02 Python
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
德国排名第一的主题公园门票网站:Attraction Tickets Direct
2019/09/09 全球购物
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
讲座新闻稿
2015/07/18 职场文书
golang中的空slice案例
2021/04/27 Golang
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技