2011-06-13 25 views
25

मैं LESS CSS का उपयोग कर रहा हूँ।कम सीएसएस सेट गतिशील पृष्ठभूमि छवि mixin

मैं वर्तमान में चर के साथ मिक्सिन का उपयोग कर रहा हूं।

कुछ इस तरह ठीक काम करता है:

.border-radius (@radius) { border-radius: @radius; } 

#header { .border-radius(4px); } 

यह है नहीं: ': (') &

.bg-img(@img) { background-image:url(@img); } 

#logo { .bg-img("../images/logo.jpg"); } 

मैं यूआरएल पृष्ठभूमि छवि में & " 'का उपयोग कर के संयोजन की कोशिश की है ("") लेकिन फिर यह छवि को छवि नाम के बजाय images/@img के रूप में प्राप्त करने का प्रयास करता है। अन्यथा यह मुझे
Cannot call method 'charAt' of undefined

01 की त्रुटि देता है

मुझे लगता है कि background-image:url() लिखना हर समय बहुत कठिन है, क्या यह संभव है ..?

उत्तर

37

:) मेरा जवाब मिला!

इसकी आवश्यकता है मेरे मामले में इस तरह इस्तेमाल किया जा रहा: प्रारंभिक mixin करने के लिए छवि पथ का पहला हिस्सा जोड़कर

.bg-img(@img) { background-image:url("@{img}"); } 

#logo { .bg-img("../images/logo.jpg"); } 
12

आप आगे इस पर सुधार कर सकते हैं ताकि आप केवल एक बार लिखने के लिए है :

.bg-img(@img) { background-image:url("../images/@{img}"); } 

#logo { .bg-img("logo.jpg"); } 

एक छोटा सुधार लेकिन थोड़ा सा लालित्य जोड़ता है।

संबंधित मुद्दे