Basierend auf Vitaliy Silins Antwort. Abdeckung nicht nur der Fälle, in denen wir überhaupt keine Polsterung wollen, sondern auch der Fälle, in denen wir Standardgrößen haben.
Siehe die Live-Umwandlung dieses Codes in CSS auf sassmeister.com
@mixin padding($seite, $größe) {
$polstergröße : 0;
@if $größe == 'xs' { $polstergröße : 5px; }
@else if $größe == 's' { $polstergröße : 10px; }
@else if $größe == 'm' { $polstergröße : 15px; }
@else if $größe == 'l' { $polstergröße : 20px; }
@if $seite == 'all' {
.polsterung--#{$größe} {
padding: $polstergröße !important;
}
} @else {
.polsterung-#{$seite}--#{$größe} {
padding-#{$seite}: $polstergröße !important;
}
}
}
$seitenliste: all top right bottom left;
$größenliste: none xs s m l;
@each $aktuelle-seite in $seitenliste {
@each $aktuelle-größe in $größenliste {
@include padding($aktuelle-seite,$aktuelle-größe);
}
}
Dies ergibt dann:
.polsterung--none {
padding: 0 !important;
}
.polsterung--xs {
padding: 5px !important;
}
.polsterung--s {
padding: 10px !important;
}
.polsterung--m {
padding: 15px !important;
}
.polsterung--l {
padding: 20px !important;
}
.polsterung-top--none {
padding-top: 0 !important;
}
.polsterung-top--xs {
padding-top: 5px !important;
}
.polsterung-top--s {
padding-top: 10px !important;
}
.polsterung-top--m {
padding-top: 15px !important;
}
.polsterung-top--l {
padding-top: 20px !important;
}
.polsterung-right--none {
padding-right: 0 !important;
}
.polsterung-right--xs {
padding-right: 5px !important;
}
.polsterung-right--s {
padding-right: 10px !important;
}
.polsterung-right--m {
padding-right: 15px !important;
}
.polsterung-right--l {
padding-right: 20px !important;
}
.polsterung-bottom--none {
padding-bottom: 0 !important;
}
.polsterung-bottom--xs {
padding-bottom: 5px !important;
}
.polsterung-bottom--s {
padding-bottom: 10px !important;
}
.polsterung-bottom--m {
padding-bottom: 15px !important;
}
.polsterung-bottom--l {
padding-bottom: 20px !important;
}
.polsterung-left--none {
padding-left: 0 !important;
}
.polsterung-left--xs {
padding-left: 5px !important;
}
.polsterung-left--s {
padding-left: 10px !important;
}
.polsterung-left--m {
padding-left: 15px !important;
}
.polsterung-left--l {
padding-left: 20px !important;
}