在 Sass 中使用 Bootstrap 容器宽度计算

Posted

技术标签:

【中文标题】在 Sass 中使用 Bootstrap 容器宽度计算【英文标题】:Calculate with Bootstrap container width in Sass 【发布时间】:2021-12-10 17:22:50 【问题描述】:

我想为每个断点添加一个 50% 的容器。

例如:.container的witdh在xl断点处为1140px。 所以我想做这样的事情:

.is-style-container-50 
    max-width: calc($container-max-widths / 2);

我在文档中找到了变量 $container-max-widths。 里面有这样的断点:

$container-max-widths: (
  sm: 540px,
  md: 720px,
  lg: 960px,
  xl: 1140px
);

问题是,我收到如下错误消息:

Error: (sm: 540px, md: 720px, lg: 960px, xl: 1140px) isn't a valid CSS value.

还有其他方法可以使用容器宽度进行计算吗? 还是我必须使用固定值?

【问题讨论】:

为什么不直接使用 .col-6 来获得 50% 的列? 50% 只是一个例子。我需要更多,但我周围没有.row 【参考方案1】:

$container-max-widths 是映射到键的值列表 (sm,md,lg,xl)。 您需要从$container-max-widthsxl 键中获取一个值。

xl 的例子你需要这个:

.is-style-container-50 
    max-width: map-get($container-max-widths , xl) / 2;

要使用所有断点,您需要循环遍历所有列表:

@each $size-name in map-keys($container-max-widths)
    $size-value: map-get($container-max-widths , $size-name);
    .is-style-container-50 
        @include media-breakpoint-up($size-name)
            max-width: $size-value / 2;
        
    

您还可以使用 50% 的值构建另一个列表,并将其与 Bootstrap 混合使用以将最大宽度添加到他的容器make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints)

$container-mid-max-widths: (
  sm: #map-get($container-max-widths, sm)*0.5,
  md: #map-get($container-max-widths, md)*0.5,
  lg: #map-get($container-max-widths, lg)*0.5,
  xl: #map-get($container-max-widths, xl)*0.5
);

.mid-container 
    // Using Bootstrap Mixin: make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints)
    @include make-container-max-widths( $container-mid-max-widths , $grid-breakpoints );

【讨论】:

【参考方案2】:
$container-max-widths: (
  sm: 540px,
  md: 720px,
  lg: 960px,
  xl: 1140px
);

这是一个 SASS 映射 (https://sass-lang.com/documentation/values/maps),而不是 CSS 指令。我没有足够的信息来进一步帮助你,但希望这个提示会有所帮助。

【讨论】:

以上是关于在 Sass 中使用 Bootstrap 容器宽度计算的主要内容,如果未能解决你的问题,请参考以下文章

ui.bootstrap 手风琴容器宽度问题

更改 Bootstrap 默认容器宽度

Bootstrap 3 流体容器不是 100% 宽度

如何使用 Bootstrap 4 和 Scss 将容器的宽度覆盖为 1440px 并使列同时响应

Bootstrap 3中带有容器流体和容器的网格

Bootstrap 4.5 如何更改容器网格间距宽度