Zastanawiam się, czy możliwe jest utworzenie miksu, który obsługuje wiele argumentów jako właściwości, które powinny zostać przekonwertowane na rtl. chcę zrobić coś podobnegoWsparcie od prawej do lewej (RTL) w projekcie SASS
.css-selector {
width: 300px;
height: 200px;
@include rtl {
padding: 10px 5px 3px 4px;
margin: 3px 8px 2px 5px;
}
}
z wstawek:
$rtl = false !default;
@mixin rtl() {
@if $rtl {
dir: rtl;
@each $property in @content {
//check property if it's padding or margin or something
else rtl-related... if hit use rtl mixin
}
}
@else { @content; }
}
Chyba powinienem analizowania @content, ale to nie działa (nieprawidłowy CSS po”... H $ Obiekt w. ":, że ekspresja (przykład 1 piksel pogrubienie), jest" @content {)
teraz uchwyt rtl 2 vars:
$dir: left !default;
$opdir: right !default;
, które zmieniam, gdy jest to rtl. Używam go w plikach sass, takich jak:
margin-#{$dir}: 15px;
Ale nie sądzę, że to rozwiązanie jest wystarczająco elastyczne. I nie chcę też włączać oddzielnego mixin na css.
Ktoś ma lepszy pomysł lub rozwiązanie? Wszelkie opinie mile widziane
Teraz używam prostego czek na RTL '.cssBlock { margin-top: 50px; @if $ ltr { margin-left: 30px; } @else { margin-right: 30px; } } ' – woutvdd