2011-12-15 12 views
7

मैं ईएमएस में फ़ॉन्ट आकार निर्दिष्ट कर रहा हूं, जिसका अर्थ है कि वे मूल कंटेनर से संबंधित हैं। मेरे पास कई बच्चे तत्व हैं और जब मैं इसकी गणना करता हूं तो हर बार माता-पिता के आकार को दोहराना नहीं चाहता हूं। तो मेरे पास है:कम स्ट्रिंग इंटरपोलेशन

@articleFontSize: 21/16; 

हैं, तो आगे पर, मैं का उपयोग करें:

font-size: @articleFontSizeem; 

आपकी अपेक्षानुसार, मैं 'चर @articleFontSizeem अपरिभाषित है'।

अगर मैं यह अंतर्वेशन: तो फिर

font-size: @{articleFontSize}em; 

यह संकलित करने के लिए मना कर दिया और मैं सिर्फ एक सादे 'सिंटेक्स त्रुटि' मिलता है।

font-size: @articleFontSize~"em"; 

यह संकलित - लेकिन उत्पादन में मैं की तरह कोड प्राप्त:

font-size: 1.3125 em; 

यानी यह इकाइयों से पहले एक स्थान जोड़ दिया जाता है, तो वे ब्राउज़र द्वारा नजरअंदाज कर दिया जाता है।

मै मैक पर लाइवरलोड लोड कर रहा हूं (2.0 बीटा 5) जो सेटिंग्स के अनुसार संकलन के लिए 'सिस्टम रूबी 1.8.7' का उपयोग करता है।

UPDATED समाधान:

एक। सही इकाइयों की शून्य राशि जोड़ें:

font-size: 0em + @articleFontSize; 

बी। (मेरे पहले वैकल्पिक पद्धति - एक समारोह का उपयोग कर):

.rFont(@target, @context) { 
    @ratio: @target/@context; 
    font-size: ~"@{ratio}em"; 
} 

साथ कहा जाता है:

.rFont(11,@articleFontSize); 

आउटपुट (सही, कोई अवांछित रिक्त स्थान पर ध्यान दें):

font-size: 0.7063571428571428em; 

मैं उम्मीद नहीं थी tilde + quotes के अंदर @ {अनुपात} डालने के लिए अभी भी इसे विस्तारित करें। लेकिन यह काम करता है (लगभग कुछ नहीं करता है।)

यह सवाल मदद की: concatenate values in less (css) without a space

+0

भागने विधि मुझे मदद मिली है, धन्यवाद – Huangism

उत्तर

11

font-size: 0em + @articleFontSize; 
+0

प्रतिभा! पूरी तरह से काम करता है, धन्यवाद। –

+7

सुंदर हैक लेकिन आपको इसे 'फ़ॉन्ट-साइज: यूनिट (@articleFontSize, em) लिखने पर विचार करने की आवश्यकता नहीं है; ' – TKrugg

1

आप articleFontSize चर में उन्हें रख सकते हैं? उदाहरण के लिए:

@articleFontSize: 21/16em; 

या कि अगर शायद काम नहीं करता:

@articleFontSize: (21/16)em; 
+0

हाँ, आप कर सकते हैं। मैंने पहले इसे बाहर कर दिया था, लेकिन ऐसा लगता है कि मेरा तर्क गलत था - मुझे वास्तव में सेटिंग करना चाहिए: –

+0

(दूसरा प्रयास) मुझे वास्तव में प्रारंभिक आकार को '21' (कोई फॉर्मूला या इकाइयां) सेट करने की आवश्यकता नहीं है, इसलिए मैं बाद में कर सकते हैं: फ़ॉन्ट आकार: 12/@ आलेखफॉन्ट आकार और इसे ईएमएस व्यक्त करें। (अगर मैं इसे कम से कम लिखता हूं, तो मुझे सही आकार प्राप्त करने के लिए 12/16em से 12/21em बदलना होगा, यदि आप देखते हैं कि मेरा क्या मतलब है ..) हो सकता है कि मैं इसे हाथ से अंदर रखूं। .. –

+0

@articleFontSize: (21/@ articleFontSize) em; ब्रैकेट या तो काम नहीं करते हैं - यह मान्य करता है, लेकिन फिर भी एक असाधारण स्थान है * इस पर ध्यान दिए बिना कि आप केवल 21/16 आदि के परिवर्तनीय नाम का उपयोग करते हैं। मुझे नहीं पता कि स्थान कहां से आ रहा है ... –

-1

'रेम' माप की इकाई के बजाय पर एक नज़र डालें का प्रयास करें: http://snook.ca/archives/html_and_css/font-size-with-rem यह सब है रिश्तेदार ईएमएस /% के लाभ, फिर भी पीएक्स की भविष्यवाणी को बरकरार रखते हैं और बाल चक्रों के 'कंपाउंड साइजिंग' को रोकते हैं।

सादर,

+0

इस प्रश्न के साथ इसका कोई लेना-देना नहीं है। इकाई का प्रकार अप्रासंगिक है – WickyNilliams

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