Bootstrap 需要 Sass 编译器和 Autoprefixer 才能与我们的官方编译版本相匹配

Bootstrap will require a Sass compiler and Autoprefixer for a setup that matches our official compiled versions

我想将 bootstrap 4 用于一个全新的项目,但我对此感到困惑。

问:我可以只下载源码然后指向:

<link rel="stylesheet" href="bootstrap-4.0.0-alpha.2/dist/css/bootstrap.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="bootstrap-4.0.0-alpha.2/dist/js/bootstrap.js"></script>

这就是我需要担心的全部吗? 我是否需要担心 Reboot、Grid Only 或 Flexbox? 我只想使用 bootstrap。我不想太担心各种选项和设置。

是的,您可以下载已编译的 CSS 代码并指向问题中所述的 dist 文件夹中的文件。使用编译后的 CSS 与 Bootstrap 没有区别 3.

只有在您开始编译自己的修改或扩展版本的情况下,您才需要 Sass 编译器并且必须 运行 自动前缀。 Bootstrap 3 使用 Less,Bootstrap 4 使用 Sass 作为 CSS 代码的预编译器。请注意,自 Bootstrap v3.2 以来,自动前缀器是必需的。另见:http://bassjobsen.weblogs.fm/prepared-bootstrap-v4/

编译 Bootstrap 的最简单方法是使用 Bootstrap 附带的构建系统。

  1. 下载并解压源代码
  2. 导航到 bootstrap 文件夹
  3. 运行: npm install
  4. 运行: grunt

当您如上所述编译自己的版本时 Bootstrap 会附带一些附加功能。

首先你可以编译你的代码来支持 flexboxes,注意一些旧的浏览器不支持 flexboxes,尤其是 IE 8 和 IE 9 不支持它们,另见:http://caniuse.com/#feat=flexbox 为您的布局启用 flexbox 支持就像将单个 Sass 变量 ($enable-flex: true;) 设置为 true 一样简单。 scss/bootstrap-flex.scss 向您展示了如何执行此操作。您还可以在 scss/bootstrap.scss 文件中设置此变量并保持构建系统完整。

其次Bootstrap 4 使您只能编译网格(类)。在 scss/bootstrap-grid.scss 文件中可以找到示例。您可以将此文件导入任何其他 Sass 项目以使用 Bootstrap 网格系统。注意网格需要box-sizing: border-boxWhy did Bootstrap 3 switch to box-sizing: border-box?,不是网格代码设置的

第三,Bootstrap 4 随 Reboot 一起发布(这也设置了 box-sizing: border-box,如前所述)。 Reboot 是全局重置和 Normalize.css (https://github.com/necolas/normalize.css) 的扩展,您可以将 Reboot 用于其他项目。要仅编译 Reboot,您可以编译 scss/bootstrap-reboot.scss 文件。

最后请注意,当您只编译 bootstrap.scss 而没有 运行 自动前缀时,您的代码不包含任何供应商前缀,并且不适用于 Bootstrap 支持的所有浏览器。 运行ning autoprefixer 支持与默认构建系统相同的浏览器列表,使您编译的 CSS 支持与原始代码相同的浏览器。 (所以匹配官方编译版本)