:
@mixin roundcorners($collection) {
$collectionLength = length(collection);
@for($i from 0 to $collectionLength) {
border-#{$collection[$i]}-radius: 9px;
}
}
.mybox {
@include roundcorners(['top-right','bottom-left']);
}
वांछित आउटपुट इस होगा SASS के पास सबसे नज़दीकी चीज एक सूची है, जिसे आप @Each निर्देश के साथ पुन: सक्रिय कर सकते हैं, जैसे:
@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
मैं स्ट्रिंग प्रक्षेप का उपयोग किया है शासन में ही सूची प्रविष्टि के मान को छोड़ - मैं पूरी तरह से यकीन है कि कानूनी है नहीं कर रहा हूँ, लेकिन मैं अपने देव पर नहीं कर रहा हूँ। जांचने के लिए मशीन।
मैंने तर्कों पर डिफ़ॉल्ट मान भी उपयोग किए हैं, जिसका अर्थ है कि आप कस्टम त्रिज्या में जा सकते हैं। यदि आप सूची में किसी भी कोने में पास करते हैं, तो आप पूरी डिफ़ॉल्ट सूची को साफ़ कर देंगे (जो मुझे लगता है कि आप क्या चाहते हैं, लेकिन कुछ पता होना चाहिए)।
एक अलग, सरल करने के लिए जिस तरह से यह हो सकता है: 'असत्य' के बजाय डिफ़ॉल्ट के रूप में 0 का प्रयोग
@include rounded(false, 9px, false, 9px)
:
@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
चूक सेट करके, आप की तरह इस mixin कॉल कर सकते हैं इसका मतलब है कि आप की आवश्यकता से अधिक त्रिज्या नियम नहीं बनाते हैं। इसका मतलब यह भी है कि यदि आप की जरूरत है तो आप ओवरराइड कर सकते हैं और कोनों को 0 त्रिज्या में वापस सेट कर सकते हैं।
धन्यवाद ! मुझे 'प्रत्येक 'के बारे में पता नहीं था, मैं अत्यधिक पसंद करता हूं कि मैं' @ for' का उपयोग कैसे कर रहा था! आपका वैकल्पिक समाधान जो मैं करना चाहता हूं उसके लिए बेहतर अनुकूल लगता है, लेकिन संग्रह के बारे में भी जानना अच्छा है! मैंने खोज की और खोज की और केवल लोगों को यह कहकर मिल सकता था कि यह संभव नहीं था। –
धन्यवाद साथी - मैंने आपके नोट के अनुसार इंटरपोलेशन वाक्यविन्यास तय किया है। – Beejamin