在过去几年中,最终用户的浏览习惯已经发展到包括各种设备。因此,响应式网页设计对于当今开发的每个网站都是必不可少的。但是,为每个项目从头开始创建响应式设计可能非常耗时。一个让您的生活更轻松的好解决方案是使用 CSS 框架。这样的框架会为您处理基本的响应式设计原则。在这个比较中,我们看看一些最好的 CSS 框架,看看哪个是最好的。这是 Bootstrap vs Foundation vs Bulma vs Semantic vs UIkit。
这篇文章将指导您为下一个项目选择正确的 CSS 框架。我假设您具备前端技术和响应式网页设计原则的基本知识。每个 CSS 框架都经过测试,以涵盖 Bootstrap、Foundation、Bulma、Semantic 和 UIkit 的各个方面。我介绍了每个框架的起源以及它的主要功能。我还为您提供了每个框架的快速入门指南。
Bootstrap 是一个响应式、移动优先的 CSS 框架,用于快速开发网站。它是这个列表中最流行的 CSS 框架,在 GitHub 上有超过 13 万颗星。Bootstrap 包含使用HTML、CSS 和JavaScript开发的即用型组件。
Bootstrap 最初于 2011 年在 Twitter 开发,但最终演变为一个独立项目。当前的稳定版本是 4.3。目前正在开发的 Bootstrap 5 将用 vanilla JS 代替 jQuery,放弃对过时浏览器的支持并更改当前的测试平台。
要使用 Bootstrap,您必须在构建新网页时执行以下操作:
head
标签中导入 Bootstrap CSSPopper.js
然后bootstrap.min.js
使用 Bootstrap 的任何 JavaScript 功能这是一个入门模板。
<!doctype html>
<html>
<head>
...
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
...
</head>
<body>
...
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
在本教程中,我们将为这些框架使用 CDN 托管的资源版本(CSS 和 JS 文件)。这是 Bootstrap 的快速入门指南。
除了强大的移动优先方法之外,该框架的成熟度还得到了社区的大力支持。此外,虽然 Bootstrap 维护了一个已批准的框架和工具包列表供您选择,但第三方开发人员还为 Bootstrap 提供工具包和包,它们可以同样轻松地与您的项目集成。这是我们为 Bootstrap 挑选的免费 UI 工具包。除了移动优先之外,还有一些对触摸屏的支持。由于 Bootstrap 是一个成熟的项目,它支持许多辅助功能。
Bootstrap 最大的缺点是增加了页面权重。虽然在平均页面大小约为 2MB 的世界中,几百 KB 可能并不重要,但它可能会让追求最高效率的开发人员感到担忧。对 jQuery 的依赖是一个令人担忧的问题,尽管知道 jQuery 的移除是 Bootstrap 5 路线图的一部分是令人鼓舞的。
优点:
缺点:
如果您正在寻找具有良好支持基础的稳定平台,Bootstrap 应该是您的首选。如果您不希望对默认组件进行太多修改,这是正确的选择。Bootstrap 非常适合那些希望在敏捷环境中快速迭代解决方案的人。
Foundation 于 2011 年在 Bootstrap 的一个月内首次发布,它是一类前端框架,不仅适用于网站,还适用于应用程序和电子邮件!让我们看看 Bootstrap 与 Foundation 是如何叠加的!
就像 Twitter 的 Bootstrap 一样,Foundation 最初是作为 Zurb 基金会的内部工具,然后最终作为框架发布。Foundation 的源代码是开源的,重点是移动优先的响应式设计。Foundation 有一个类似于 Bootstrap 的网格系统,有 12 列可供选择。此外,JavaScript 也是可选的!
在您的网站上使用 Foundation 的大致步骤如下:
head
在标签中添加 Foundation CSS 文件what-input.js
和 Foundation 的脚本body
标记之前,调用foundation()
函数将 Foundation 属性附加到各种 DOM 元素这是一个快速入门模板:
<!doctype html>
<html class="no-js" lang="en">
<head>
...
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="css/foundation.css" />
</head>
<body>
...
<script src="js/vendor/jquery.js"></script>
<script src="js/vendor/what-input.js"></script>
<script src="js/vendor/foundation.min.js"></script>
<script>
$(document).foundation();
</script>
</body>
</html>
优点:
缺点:
Bootstrap 与 Foundation 之间的功能没有显着变化,选择任何一个平台都不会损失太多。话虽如此,如果您想更好地控制您的项目,您可能应该选择 Foundation。
Bulma 是一个基于 Flexbox 的开源轻量级 CSS 框架。
虽然还没有达到 Bootstrap 的水平,但 Bulma 是 GitHub 上一个相当受欢迎的项目,拥有超过 35k 颗星。
Bulma 被设计成一个移动优先的响应式框架,并且更加注重模块化。
为了在您的项目中使用 Bulma,您必须按照以下步骤操作:
head
在您的标签中包含 Bulma CSS 文件fontawesome
脚本以使用图标这是一个模板:
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
...
</body>
</html>
回到关于 Bootstrap 与 Foundation 与 Bulma 的辩论,Bulma 的学习曲线更为平缓。Bulma 与 Bootstrap 和 Foundation 的一个显着区别是只关注 CSS,框架中没有任何 JavaScript 元素。JavaScript 的排除也使框架变得轻量级。在可访问性方面,Bulma 仅部分可访问,尽管社区正在定期增加支持。
优点:
缺点:
作为开发人员,如果您想使用轻量级框架来帮助您为 Web 创建响应式元素,则应该选择 Bulma。如果您在此过程中遇到困难,该框架有相当多的支持可以帮助您。
要在您的项目中使用语义组件,您需要完成以下步骤:
这是一个模板:
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" type="text/css" href="semantic/dist/semantic.min.css">
</head>
<body>
...
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script src="semantic/dist/semantic.min.js"></script>
</body>
</html>
将 Semantic 与 Bootstrap 与 Foundation 等进行比较,您会注意到,尽管有直观的命名约定,但 Semantic 在学习的复杂性方面仍存在不足。文档很广泛,但需要一些时间来适应。与Angular 和 React等 JavaScript 框架的集成很好,这使得它非常适合在涉及使用这些框架的应用程序中使用。
优点:
缺点:
Semantic 是学习曲线相对容易的框架,也支持 JavaScript 框架。如果您的需求涉及到 JavaScript 的使用,那么您绝对应该考虑在您的下一个项目中使用这个框架。
UIkit 是一个现代的轻量级框架,非常强调模块化来创建 Web 界面。
它是一个相对较新的开源框架,在 GitHub 上有大约 15k 颗星。UIkit 可帮助您创建响应式设计,并在 BrowserStack 上进行自动持续部署。
要在您的项目中使用 UIkit 组件,您需要完成以下步骤:
这是一个模板:
<!DOCTYPE html>
<html>
<head>
...
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.1.5/css/uikit.min.css" />
</head>
<body>
...
<script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.1.5/js/uikit.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.1.5/js/uikit-icons.min.js"></script>
</body>
</html>
如果我们将 UIkit 与 Bootstrap、Foundation 和 Bulma 进行比较,它有很多功能。尽管有 JavaScript 元素,但 UIkit 不依赖 jQuery,这使得最终用户的有效负载更小。在敏捷开发环境中快速迭代 Web 应用程序版本方面,它绝对与这些框架并驾齐驱。
优点:
缺点:
虽然 UIkit 在控制结构和功能方面为您提供了很大的自由,但它是相当新的,如果您遇到框架问题,这会导致在线支持有限。因此,只有当你的前端编程技能足够先进时,才应该在项目中考虑这个框架。
总结一下我们在这个顶级 CSS 框架的比较中所讨论的内容: