【问题标题】:Bootstrap custom break pointsBootstrap 自定义断点
【发布时间】:2015-09-25 15:19:26
【问题描述】:

我正在使用 bootstrap 3.x 构建客户端站点。我有来自客户端的特定引导断点请求:

小 320px 到 768px, 中等 769 像素到 1034 像素, 大 1035px 到 1280px,和 特大号 1281 plus。

同时,我不希望网站因未来的引导版本升级而中断。关键是在我提交网站并继续前进后,客户将继续使用引导类,例如 col-md-* col-lg-* 等。我怎样才能做到这一点?有人可以分享一个 css 或简单的 scss sn-p(使用 Scout 的 scss 新手)。

非常感谢任何帮助。

【问题讨论】:

    标签: css twitter-bootstrap sass breakpoints


    【解决方案1】:

    永远不要编辑任何引导程序核心文件,而是用自定义文件覆盖它们 -> 这样您就可以更新引导程序。

    假设您有一个名为 bootstrap 的文件夹,其中包含所有 bootstrap 核心 sass 文件。即创建一个新文件夹“自定义”。在此文件夹中放置所有文件以覆盖引导核心文件(如网格)。比在 sass 文件夹中创建你的 style.scss

    sass
      -bootstrap-sass
        - bootstrap.scss
        - bootstrap
           - alert.scss
           - ...
      -custom
        - custom-grid.scss
      -style.scss
    

    现在在你的 custom-grid.scss 中放入这个并用你的值替换它:

    $screen-xs:                  480px !default;
    //** Deprecated `$screen-xs-min` as of v3.2.0
    $screen-xs-min:              $screen-xs !default;
    //** Deprecated `$screen-phone` as of v3.0.1
    $screen-phone:               $screen-xs-min !default;
    
    // Small screen / tablet
    //** Deprecated `$screen-sm` as of v3.0.1
    $screen-sm:                  768px !default;
    $screen-sm-min:              $screen-sm !default;
    //** Deprecated `$screen-tablet` as of v3.0.1
    $screen-tablet:              $screen-sm-min !default;
    
    // Medium screen / desktop
    //** Deprecated `$screen-md` as of v3.0.1
    $screen-md:                  992px !default;
    $screen-md-min:              $screen-md !default;
    //** Deprecated `$screen-desktop` as of v3.0.1
    $screen-desktop:             $screen-md-min !default;
    
    // Large screen / wide desktop
    //** Deprecated `$screen-lg` as of v3.0.1
    $screen-lg:                  1200px !default;
    $screen-lg-min:              $screen-lg !default;
    //** Deprecated `$screen-lg-desktop` as of v3.0.1
    $screen-lg-desktop:          $screen-lg-min !default;
    

    在你的 style.scss 中导入所有文件:

    // Core Bootstrap
    @import "bootstrap-sass/_bootstrap.scss";
    
    // Overwrite bootstrap
    @import "custom/custom-grid.scss
    ...
    

    我想说的是,这样(如果使用 sass 或更少)您可以覆盖引导核心文件,同时保留更新功能

    【讨论】:

    • 谢谢 user2040772。但是,我按照您的说明进行操作,由于某种原因,它似乎没有覆盖默认的引导程序默认断点。我也没有收到任何错误。是否也可以使用自定义 css(不是 scss)覆盖引导程序默认值。我正在使用 Scout App(不是 Compass),所以我可能无法使用某些 mixin。
    【解决方案2】:

    如果您使用的是 SCSS,请确保您使用的是官方的 Bootstrap SASS 代码。

    将它安装到您的项目中(GitHub 上的自述文件中的说明),然后编辑第 271 到 307 行中定义的变量scss/_bootstrap-variables.scss,编译,这将是整个更改的所有断点。

    如果有版本升级,您将需要每次使用自定义断点重新编译 css。

    您也可以自定义所有设置并在Bootstrap's Website 上在线下载自定义版本。您可以保存配置并将其提供给将来可以重复使用的客户。

    【讨论】:

    • 您永远不应该更改引导目录。按照 user2040772 的建议选择覆盖选项
    • 如果您正确阅读了我的答案,它实际上是在准确描述@user2040772 所说的。我绝不会更改引导核心文件,而只是更新引导变量部分,当您重新编译时确实会覆盖核心。
    • 您说:“然后编辑第 271 到 307 行 scss/_bootstrap-variables.scss 中定义的变量”,我认为您永远不应该这样做。只需将其复制到一个新文件(在引导安装之外),然后在其中粘贴相同的行。这使您可以随时升级整个引导目录并将调整后的变量分开。仍然需要 SASS 编译(在您进行每次更改之后),所以这根本不重要。如果你是这个意思,我认为你的帖子不够清楚。
    • 谢谢丹尼尔。你能分享一个代码sinppet吗?我正在使用 Scout 应用程序。非常感谢任何帮助。
    猜你喜欢
    • 2021-10-05
    • 1970-01-01
    • 2018-05-21
    • 2022-11-18
    • 2019-03-19
    • 2021-05-12
    • 2020-10-24
    • 2019-03-02
    • 2019-05-18
    相关资源
    最近更新 更多