Tôi tự hỏi liệu có thể tạo ra một mixin xử lý nhiều đối số như các thuộc tính cần được chuyển đổi thành rtl hay không. tôi muốn làm một cái gì đó giống nhưhỗ trợ từ phải sang trái (RTL) trong dự án SASS
.css-selector {
width: 300px;
height: 200px;
@include rtl {
padding: 10px 5px 3px 4px;
margin: 3px 8px 2px 5px;
}
}
với một mixin:
$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; }
}
Tôi nghĩ rằng tôi nên phân tích @content, nhưng nó không hoạt động (không hợp lệ CSS sau" ... h $ bất động sản trong. ": biểu hiện mong đợi (ví dụ 1px, đậm), là" @content {)
Bây giờ tôi xử lý rtl với 2 vars:
$dir: left !default;
$opdir: right !default;
mà tôi thay đổi khi nó là rtl. Tôi sử dụng nó trong các tệp sass của tôi như
margin-#{$dir}: 15px;
Nhưng tôi không nghĩ giải pháp này đủ linh hoạt. Và tôi cũng không muốn bao gồm một mixin riêng biệt cho mỗi tài sản css.
Ai đó có ý tưởng hay giải pháp tốt hơn? Mọi phản hồi chào mừng
Bây giờ tôi đang sử dụng một kiểm tra đơn giản cho rtl '.cssBlock { margin-top: 50px; @if $ ltr { lề trái: 30px; } @else { lề phải: 30px; } } ' – woutvdd