Điều gần nhất SASS có một mảng là một danh sách mà bạn có thể lặp lại với chỉ thị @each, như vậy:
@mixin roundcorners($collection: (top-left, top-right, bottom-right, bottom-left), $radius: 0)
@each $corner in $collection
border-#{$corner}-radius: $radius
http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#each-directive
Tôi đã sử dụng chuỗi suy giảm giá trị của các mục nhập danh sách vào quy tắc riêng của mình - Tôi không hoàn toàn chắc chắn đó là hợp pháp, nhưng tôi không về dev của tôi. máy để kiểm tra.
Tôi cũng đã sử dụng giá trị mặc định trên các đối số, có nghĩa là bạn có thể chuyển vào bán kính tùy chỉnh. Nếu bạn vượt qua ở bất kỳ góc nào trong danh sách, bạn sẽ xóa toàn bộ danh sách mặc định (mà tôi nghĩ là những gì bạn muốn, nhưng một điều cần lưu ý).
Một khác nhau, cách đơn giản hơn để làm điều này có thể là:
@mixin rounded($topLeft:false, $topRight:false, $bottomRight:false, $bottomRight:false)
@if $topLeft != false
border-top-left-radius: $topLeft
@if $topRight != false
border-top-right-radius: $topRight
@if $bottomRight != false
border-bottom-right-radius: $bottomRight
@if $topLeft != false
border-bottom-left-radius: $topLeft
Bằng cách đặt giá trị mặc định, bạn có thể gọi mixin này như:
@include rounded(false, 9px, false, 9px)
Sử dụng 'false' thay vì 0 như mặc định có nghĩa là bạn không tạo ra các quy tắc bán kính hơn bạn cần. Nó cũng có nghĩa là bạn có thể ghi đè và thiết lập các góc quay lại bán kính 0 nếu bạn cần.
Cảm ơn ! Tôi không biết về '@ each', tôi rất thích cách tôi sử dụng' @ for'! Giải pháp thay thế của bạn có vẻ phù hợp hơn với những gì tôi muốn làm, nhưng cũng tốt khi biết về các bộ sưu tập! Tôi đã tìm kiếm và tìm kiếm và chỉ có thể tìm thấy những người nói rằng điều đó là không thể. –
Cảm ơn bạn đời - Tôi đã sửa cú pháp nội suy theo ghi chú của bạn. – Beejamin