bootstrap-sass
是 Bootstrap 3 的 Sass 支持版本,可以直接放入 Sass 支持的应用程序中。
这是 Bootstrap 3 。对于 Bootstrap 4,如果您使用 Ruby,请使用 Bootstrap rubygem,否则使用主存储库。
请参阅适合您选择的环境的指南:
Ruby on Rails。
鲍尔。
npm / Node.js。
bootstrap-sass
很容易通过 asset pipeline 放入 Rails 中。
在 Gemfile 中,您需要添加bootstrap-sass
gem,并确保sass-rails
gem 存在 - 默认情况下它会添加到新的 Rails 应用程序中。
gem 'bootstrap-sass', '~> 3.4.1' gem 'sassc-rails', '>= 2.1.0'
bundle install
并重新启动服务器以使文件可以通过管道使用。
在app/assets/stylesheets/application.scss
中导入 Bootstrap 样式:
// "bootstrap-sprockets" 必须在 "bootstrap" 和 "bootstrap/variables" 之前导入@import "bootstrap-sprockets";@import "bootstrap";
bootstrap-sprockets
必须在bootstrap
之前导入,图标字体才能正常工作。
确保文件具有.scss
扩展名(或.sass
用于 Sass 语法)。如果您刚刚生成了一个新的 Rails 应用程序,它可能会附带一个.css
文件。如果此文件存在,它将代替 Sass 提供服务,因此将其重命名:
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
然后,删除所有*= require_self
和*= require_tree .
sass 文件中的语句。相反,使用@import
导入 Sass 文件。
不要在 Sass 中使用*= require
,否则你的其他样式表将无法访问 Bootstrap mixin 或变量。
Bootstrap JavaScript 依赖于 jQuery。如果您使用的是 Rails 5.1+,请将jquery-rails
gem 添加到 Gemfile 中:
宝石'jquery-rails'
$ 捆绑安装
需要app/assets/javascripts/application.js
中的 Bootstrap Javascript:
//= 需要 jquery//= 需要 bootstrap-sprockets
bootstrap-sprockets
和bootstrap
不应同时包含在application.js
中。
bootstrap-sprockets
提供单独的 Bootstrap Javascript 文件(例如, alert.js
或dropdown.js
),而bootstrap
提供包含所有 Bootstrap Javascript 的串联文件。
当使用 bootstrap-sass Bower 包而不是 Rails 中的 gem 时,请在config/application.rb
中配置资产:
# Bower asset pathsroot.join('vendor', 'assets', 'bower_components').to_s.tap do |bower_path| config.sass.load_paths << Bower_path config.assets.paths << Bower_pathend# 预编译 Bootstrap 字体config.assets.precompile << %r(bootstrap-sass/assets/fonts/bootstrap/[w-]+.(?:eot|svg|ttf|woff2?)$ )# bootstrap-sass::Sass::Script::Value::Number. precision 所需的最小 Sass 数字精度 = [8, ::Sass::Script::Value::Number. precision].max
将application.scss
中的 Bootstrap @import
语句替换为:
$icon-font-path: "bootstrap-sass/assets/fonts/bootstrap/";@import "bootstrap-sass/assets/stylesheets/bootstrap-sprockets";@import "bootstrap-sass/assets/stylesheets/bootstrap";
将application.js
中的 Bootstrap require
指令替换为:
//= 需要 bootstrap-sass/assets/javascripts/bootstrap-sprockets
请确保sprockets-rails
至少为 v2.1.4。
bootstrap-sass 不再与 Rails 3 兼容。与 Rails 3.2 兼容的 bootstrap-sass 最新版本是 v3.1.1.0。
bootstrap-sass Bower 包与 node-sass 3.2.0+ 兼容。您可以使用以下命令安装它:
$ Bower 安装 bootstrap-sass
Sass、JS 和所有其他资产都位于 asset 处。
默认情况下, bower.json
main 字段仅列出主_bootstrap.scss
和所有静态资源(字体和 JS)。默认情况下,它与wiredep等资产管理器兼容。
如果您将 mincer 与 node-sass 一起使用,请像这样导入 Bootstrap:
在application.css.ejs.scss
(注意.css.ejs.scss )中:
// 导入 mincer 资源路径帮助程序集成@import "bootstrap-mincer";@import "bootstrap";
在application.js
中:
//= 需要引导链轮
另请参阅 mincer 的清单.js 示例。
$ npm 安装 bootstrap-sass
默认情况下导入所有 Bootstrap。
您还可以显式导入组件。要从完整的模块列表开始,请将_bootstrap.scss
文件作为_bootstrap-custom.scss
复制到您的资产中。然后从_bootstrap-custom
中注释掉您不需要的组件。在应用程序 Sass 文件中,将@import 'bootstrap'
替换为:
@import 'bootstrap-custom';
bootstrap-sass 要求 Sass 数字精度最小为 8(默认为 5)。
使用sassc-rails
gem 时,Ruby 的精度会自动设置。当将 npm 或 Bower 版本与 Ruby 一起使用时,您可以使用以下命令进行设置:
::Sass::Script::Value::Number. precision = [8, ::Sass::Script::Value::Number. precision].max
Bootstrap 需要使用 Autoprefixer。 Autoprefixer 使用 Can I Use 中的值将供应商前缀添加到 CSS 规则中。
要匹配上游 Bootstrap 的浏览器兼容性级别,请将 Autoprefixer 的browsers
选项设置为:
[“Android 2.3”、“Android >= 4”、“Chrome >= 20”、“Firefox >= 24”、“Explorer >= 8”、“iOS >= 6”、“Opera >= 12”、“Safari >= 6"]
assets/javascripts/bootstrap.js
包含所有 Bootstrap 的 JavaScript,并以正确的顺序连接。
如果您使用 Sprockets 或 Mincer,则可以需要bootstrap-sprockets
来加载各个模块:
// 加载所有 Bootstrap JavaScript //= 需要 bootstrap-sprockets
您还可以加载单个模块,前提是您还需要任何依赖项。您可以在 Bootstrap JS 文档中检查依赖关系。
//= 需要 bootstrap/scrollspy//= 需要 bootstrap/modal//= 需要 bootstrap/dropdown
字体引用为:
“#{$icon-font-path}#{$icon-font-name}.eot”
如果使用资源路径助手, $icon-font-path
默认为bootstrap/
,否则为../fonts/bootstrap/
。
当 bootstrap-sass 与 Compass、Sprockets 或 Mincer 一起使用时,您必须在 Bootstrap 本身之前导入相关的路径助手,例如:
@import“bootstrap-compass”;@import“bootstrap”;
将 Bootstrap 导入 Sass 文件(例如application.scss
)以获取 Bootstrap 的所有样式、mixin 和变量!
@导入“引导程序”;
您还可以包含可选的 Bootstrap 主题:
@import“引导程序/主题”;
可以在此处找到 Bootstrap 变量的完整列表。您可以通过简单地在@import
指令之前重新定义变量来覆盖它们,例如:
$navbar-default-bg: #312312;$light-orange: #ff8c00;$navbar-default-color: $light-orange;@import "bootstrap";
Bootstrap 可作为 Eyeglass 模块使用。通过 NPM 安装 Bootstrap 后,您可以通过以下方式导入 Bootstrap 库:
@import“bootstrap-sass/bootstrap”
或者仅导入您需要的 Bootstrap 部分:
@import“bootstrap-sass/bootstrap/variables”;@import“bootstrap-sass/bootstrap/mixins”;@import“bootstrap-sass/bootstrap/carousel”;
Bootstrap for Sass 版本可能与最后一个编号中的上游版本不同,称为 PATCH。补丁版本可能领先于相应的上游次要版本。当我们需要发布 Sass 特定的更改时,就会发生这种情况。
在 v3.3.2 之前,Bootstrap for Sass 版本用于反映上游版本,并带有针对 Sass 特定更改的附加编号。由于 Bower 和 npm 兼容性问题,这一点已更改。
上游版本与 Bootstrap for Sass 版本是:
上游 | 萨斯 |
---|---|
3.3.4+ | 相同的 |
3.3.2 | 3.3.3 |
<= 3.3.1 | 3.3.1.x |
升级时请务必参考 CHANGELOG.md。
如果您想帮助 bootstrap-sass 本身的开发,请阅读本节。
保持 bootstrap-sass 与 Bootstrap 的上游更改同步过去是一个容易出错且耗时的手动过程。在 Bootstrap 3 中,我们引入了一个转换器来自动执行此操作。
注意:如果您只是想使用Bootstrap 3,请参阅上面的安装部分。
现在可以使用convert
rake 任务引入对 Bootstrap 项目的上游更改。
下面是一个示例运行,它将从主 twbs/bootstrap 存储库中拉取 master 分支:
rake convert
这会将最新的 LESS 转换为 Sass 并更新到最新的 JS。要转换特定分支或版本,请将分支名称或提交哈希作为第一个任务参数传递:
rake convert[e8a1df5f060bf7e6631554648e0abde150aedbe4]
最新的转换器脚本位于此处并执行以下操作:
将上游 Bootstrap LESS 文件转换为其匹配的 SCSS 文件。
将所有上游 JavaScript 复制到assets/javascripts/bootstrap
中,Sprockets 清单位于assets/javascripts/bootstrap-sprockets.js
中,并串联在assets/javascripts/bootstrap.js
中。
将所有上游字体文件复制到assets/fonts/bootstrap
中。
将 version.rb 中的Bootstrap::BOOTSTRAP_SHA
设置为分支 sha。
该转换器将原始 LESS 完全转换为 SCSS。转换是自动的,但需要某些转换的指令(请参阅转换器输出)。请提交标记有conversion
GitHub 问题。
bootstrap-sass 有许多主要贡献者:
托马斯·麦克唐纳
特里斯坦·哈沃德
彼得·古梅森
格列布·马佐维茨基
以及大量其他贡献者。
bootstrap-sass 用于在网络上构建一些很棒的项目,包括 Diaspora、rails_admin、Michael Hartl 的 Rails 教程、gitlabhq 和 kandan。