2013-01-17 16 views
26

में इसे करने के लिए 'पिक्सल' जोड़ें:एक अंकीय चर नकारना और मैं एक समारोह जो निम्नलिखित करता बनाना चाहेंगे Lesscss

.sprite-size (@width,@height,@x,@y) { 
    width:~'@{width}px'; 
    height:~'@{height}px'; 
    background: @sprites no-repeat -~'@{x}px' -~'@{y}px'; 
} 

मैं @x और @y और उसके बाद में, एक postive मूल्य पारित करने के लिए चाहते हैं आउटपुट में उन्हें अस्वीकार करें। ऊपर कम समारोह आउटपुट निम्न उदाहरण के लिए निम्नलिखित:

//LESS 
.header-language-selection { 
    .sprite-size(44,21,312,0); 
} 

//Outputs CSS 
.header-language-selection { 
    width: 44px; 
    height: 21px; 
    background: url('/Content/images/sprites.png') no-repeat - 312px - 0px; 
} 

आप देख सकते हैं उत्पादन परिणाम - और px के बीच एक स्थान शामिल है। क्या कोई रास्ता है जहां कोई इसे हटा सकता है और जो मैं चाहता हूं उसे प्राप्त कर सकता हूं?

मुझे लगता है कि लाइन के उत्पादन में रहना चाहता हूँ: background: url('/Content/images/sprites.png') no-repeat -312px -0px;

उत्तर

53

बस संकेत और इकाइयों आप चाहते हैं में 1 से गुणा करें। तो:

.sprite-size (@width,@height,@x,@y) { 
    width: @width*1px; 
    height: @height*1px; 
    background: @sprites no-repeat @x*(-1px) @y*(-1px); 
} 
+0

इस जवाब स्वीकार किया जाना चाहिए ... – Dmitry

+0

या -0.5, मेरे मामले में। –

5

आप भी इस कोशिश कर सकते हैं:

.sprite-size (@width,@height,@x,@y) { 
    width: ~"@{width}px"; 
    height: ~"@{height}px"; 
    background: @sprites no-repeat @x*(-1px) @y*(-1px); 
}