Как смешать служебный класс Twitter Bootstrap с моими собственными классами SASS? - PullRequest
0 голосов
/ 13 октября 2019

У меня есть собственный класс, написанный на SASS:

.my-custom-container {
    background-color: red;
    padding: 1.5rem;
}

Я хотел бы смешать служебный класс Bootstrap .p2, что-то вроде:

.my-customer-container {
    background-color: red;
    @mixin(p2);
}

Возможно ли это?

1 Ответ

0 голосов
/ 14 октября 2019

Миксинов для этого не существует, поскольку интервальный файл начальной загрузки выглядит следующим образом:

// stylelint-disable declaration-no-important

// Margin and Padding

@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

    @each $prop, $abbrev in (margin: m, padding: p) {
      @each $size, $length in $spacers {

        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
        .#{$abbrev}t#{$infix}-#{$size},
        .#{$abbrev}y#{$infix}-#{$size} {
         #{$prop}-top: $length !important;
        }
        .#{$abbrev}r#{$infix}-#{$size},
        .#{$abbrev}x#{$infix}-#{$size} {
         #{$prop}-right: $length !important;
        }
        .#{$abbrev}b#{$infix}-#{$size},
        .#{$abbrev}y#{$infix}-#{$size} {
         #{$prop}-bottom: $length !important;
        }
        .#{$abbrev}l#{$infix}-#{$size},
        .#{$abbrev}x#{$infix}-#{$size} {
          #{$prop}-left: $length !important;
        }
      }
    }
    // Some special margin utils
    .m#{$infix}-auto { margin: auto !important; }
    .mt#{$infix}-auto,
    .my#{$infix}-auto {
      margin-top: auto !important;
    }
    .mr#{$infix}-auto,
    .mx#{$infix}-auto {
      margin-right: auto !important;
    }
    .mb#{$infix}-auto,
    .my#{$infix}-auto {
      margin-bottom: auto !important;
    }
    .ml#{$infix}-auto,
    .mx#{$infix}-auto {
      margin-left: auto !important;
    }
  }
}

Вы можете видеть, что Bootstrap генерирует свои классы заполнения напрямую и не использует какой-либо миксин, поэтому вы можетене используйте их повторно. Вы должны написать свои собственные дополнения или просто использовать переменные $ spacer.

.myClass {
    margin-top: $spacer*0.5;
}
...