मैं सीएसएस प्रीप्रोसेसर कम में एक ब्लॉक लिखने की कोशिश कर रहा हूं जो निम्न कार्य करेगा:कम सीएसएस प्रीप्रोसेसर: क्या एक रंग को आरजीबी और आरजीबीए परिभाषा में मैप करने का कोई तरीका है?
@transparent_background(@color; @alpha: .8)
{
background: @color;
background: rgba(<color R value>, <color G value>, <color B value>, @alpha);
}
अगर आरजीबी मानों को @color से बाहर निकालने का कोई तरीका है यदि यह एक मानक हेक्स परिभाषा है (यानी #rrggbb)? क्या ऐसा करने का कोई तरीका है यदि @color को किसी अन्य तरीके से परिभाषित किया गया है?
संपादित करें: समाधान
@transparent_background(@color; @alpha: .8)
{
background: @color;
background: @color + rgba(0, 0, 0, @alpha);
}
चूंकि @color सिर्फ एक हेक्स परिभाषा है, पहले अल्फा चैनल को घटाने की आवश्यकता नहीं है। तो समाधान बस था: @color + rgba (0, 0, 0, @alpha)। पूर्वदर्शी में स्पष्ट लगता है लेकिन मुझे एहसास नहीं हुआ कि आप हेक्स/आरजीबीए को इस तरह मिला सकते हैं। –
मैं थोड़ा सा भयावह था और अल्फा चैनल संशोधन के भविष्य के सबूत की कोशिश कर रहा था, इसलिए अल्फा चैनल को एक ज्ञात स्थिति में मजबूर करने के लिए घटाव ताकि इसमें 'अल्फा' जोड़ना अल्फा चैनल के बराबर होगा ' @ alpha'। एक अतिरिक्त बोनस के रूप में यह स्पष्ट करता है कि आप इसे थोड़ा समायोजित करने के बजाय अल्फा चैनल असाइन कर रहे हैं। –
कम से कम कम से कम, अल्फा चैनल को नकारात्मक होने से रोकने के लिए कोई जांच नहीं है। –