Я создаю кучу своих собственных вспомогательных классов, и для большинства свойств / значений CSS это одно слово, поэтому мой код SCSS ниже работает нормально, но для чего-то вроде justify-content: flex-start
Я столкнулся со стеной.
Я использовал str-slice
, чтобы взять первую букву из свойства и значения, но теперь мне нужно расширить его, если значение свойства использует тире.
Есть мысли?
$positions: ('relative', 'absolute', 'fixed', 'sticky');
$flexPositions: ('flex-start', 'center', 'flex-end');
@mixin positionHelpers($breakpoint) {
@each $position in $positions {
.p\:#{str-slice($position, 0, 1)}\@#{$breakpoint} {
position: #{$position} !important;
}
}
@each $position in $flexPositions {
.jc\:#{str-slice($position, 0, 1)}\@#{$breakpoint} {
justify-content: #{$position} !important;
}
}
}
Добавлено следующее для большего контекста:
$defaultBreakpoints: (
'xs': 'screen and (max-width: 767px)',
'sm': 'screen and (min-width:768px)',
'md': 'screen and (min-width:1024px)',
'lg': 'screen and (min-width:1201px)'
);
@each $breakpoint, $query in $defaultBreakpoints {
@if $breakpoint == 'xs' {
@include positionHelpers(#{$breakpoint})
} @else {
@media #{$query} {
@include positionHelpers(#{$breakpoint})
}
}
}