sass - 媒体选择器 "extending"引导 SASS 类

标签 sass bootstrap-4 media-queries scss-mixins

在我使用 Bootstrap/SASS (SCSS) 开发的网站上,我希望使用媒体选择器而不是 JavaScript 将 Bootstrap 按钮组 ( .btn-group ) 变成垂直组 ( .btn-group-vertical )。然而,众所周知的问题@extend无法在媒体选择器中工作,让我感到困惑。例如,这会引发错误:

.navGroup {
    @extend .mt-1;
    @extend .btn-group;
    @include media-breakpoint-down(xs) {
        @extend .btn-group-vertical;
    }
}

如果我从头开始开发,我会重写 .btn-group.btn-group-vertical简单地@include一个混合,这样我就可以做这样的事情:
.navGroup {
    @extend .mt-1;
    @include media-breakpoint-up(xs) {
        @include btn-group-include();
    }
    @include media-breakpoint-down(xs) {
        @include btn-group-vertical-include();
    }
}

我宁愿不改变原来的 bootstrap _buttonGroup.scss文件,因为它将在下一个版本/更新时被覆盖。所以我目前需要复制和过去整个 .btn-group-vertical定义:
.navGroup {
    @extend .mt-1;
    @extend .btn-group;
    @include media-breakpoint-down(xs) {
        flex-direction: column;
        align-items: flex-start;
        /* etc. for 70 lines */
    }
}

有没有一种方法可以轻松地将现有的类定义转换为 Sass 中的 mixin 来解决这样的问题?

最佳答案

您可以尝试使用 flex 类。抱歉,我不知道 navGroup 的标记。

<div class="d-flex flex-column">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>

您可以为每个断点应用这些。结帐 https://getbootstrap.com/docs/4.0/utilities/flex/

关于sass - 媒体选择器 "extending"引导 SASS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50879747/

相关文章:

html - Bootstrap 网格,在 750px 处折叠

html - 媒体查询在 IE9 iframe 中失败

javascript - 内部错误 : Invalid UTF-8 - Sass & Gulp

Angular 4 + Material 2 SASS 编译错误 "File to import not found or unreadable"

grails - Vaadin SASS合并在Grails 2.4中正常工作吗?

javascript - 如何计算 jQuery 表格中所选选项的特定值

html - Bootstrap 4在移动设备中将支付按钮对齐两行和三行

css - Powershell 构建 - 编译 SASS

javascript - 在响应式网站上使用javascript修改字体大小

html - 主页英雄下方的内容向左挤压 - 响应式设计 - 低于 640 像素