【问题标题】:How to customize bootstrap css when using bootstrap-sass [closed]使用 bootstrap-sass 时如何自定义引导 css [关闭]
【发布时间】:2013-04-25 21:26:07
【问题描述】:

我想更改很多东西,例如按钮颜色或更改导航栏(标题)上的背景图像颜色。 我使用 boostrap-sass gem,所以我不能使用 boostrap 网站'Customize page

我真的应该在我的文件 custom.css.scss 上覆盖所有这些,还是可以在更低级别的地方更改这些? 我在我的项目文件中找不到允许我这样做的 .css 文件(我搜索了所有 lib、应用程序和供应商/资产,但我没有找到 boostrap 的 css。我怀疑这是因为它们不存在,但它们直接在gem文件中) 我有很多变化,所以我觉得覆盖这么多东西不是最好的选择。

最好的方法是什么? 谢谢

【问题讨论】:

标签: css ruby-on-rails twitter-bootstrap responsive-design sass


【解决方案1】:

我已经开始使用 Twitter Bootstrap 的 Sass 风格,我只是想出了一种合理的方式来构建我的文件,这样我就可以在不弄乱核心文件的情况下进行自己的自定义覆盖,并将所有 CSS 保存在一个文件中以便更快正在加载。

简而言之,我将所有 sass 文件放入 assets/sass 并为核心文件创建一个名为 bootstrap 的子目录。然后我为我的自定义 scss 文件创建一个名为 theme 的同级目录。

转到/bootstrap,在此目录中是一个名为bootstrap.scss 的文件,其中包含所有核心组件。将此文件重命名为theme.scss,并将其放在父目录中,如下所示:

如您所见,我已经在主题目录中拥有了一些自定义的覆盖 sass 包含文件。这些将在编译时添加到默认引导 CSS 的底部。

当您进入 theme.scss 并更改包含路径 like so 时,魔法就会发生。查看图片底部的覆盖,查看顶部的自定义变量参考。

注意:如果您想在引导程序中编辑变量,最好在theme 目录中创建自己的_variables.scss 文件并将其包含在顶部 /em> 您的theme.scss 文件。通过这种方式,您可以覆盖引导变量,这些变量将在未来的更新中持续存在。

然后只需在您的页面中包含theme.css,瞧。我就是这样开始做的,还没有遇到任何错误。

我发现这是我见过的最简单的方法。当有新的更新发布时,我只会更新核心引导文件并保留我的编辑!

【讨论】:

  • 谢谢,这是有道理的!你有什么深入的教程可以分享吗?
  • 很遗憾没有。我希望我有更多的时间来分享我学到的技巧和窍门。
【解决方案2】:

我也有同样的问题,我喜欢 gillytech 的回答,但我想补充一点,您不需要将 _variables.scss 文件中的所有内容复制到您自己的变量文件中。您只需要声明和使用 Bootstrap 正在使用的相同变量,并确保您将在加载 Bootstrap 的 _variables.scss 文件之前加载变量文件。

您会注意到许多 Bootstrap 变量在为其赋值后都有一个“!default”。这意味着如果它已经定义,sass 将不会覆盖它。

所以我的 theme.scss 文件如下所示:

@import "superhero-variables";
@import "bootstrap";
@import "superhero-theme";

在“使用变量设置引导程序样式”下找到此内容:http://pivotallabs.com/sass-with-bootstrap/

【讨论】:

    【解决方案3】:

    您不应该修改 Boostrap 的原始文件。最好的选择是用你自己的类覆盖他们的类。您可以通过在 assets/stylesheets 文件夹中创建一个 css 文件来做到这一点,该文件将自动包含在您的应用中。

    【讨论】:

    • 嗨!假设我想更改导航样式,例如颜色、背景等。我该怎么做。可以举个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多