सीएसएस 'पूर्व' इकाई का मूल्य क्या है?


87

( Xunit , एक लोकप्रिय .Net इकाई परीक्षण पुस्तकालय के साथ भ्रमित होने की नहीं ।)

आज बोरियत के एक फिट में मैंने Gmails DOM (हाँ, मैं बहुत ऊब गया था) का निरीक्षण करना शुरू कर दिया।

जब तक मैंने कुछ तत्वों की चौड़ाई पर एक दिलचस्प विनिर्देश देखा, तब तक सब कुछ बहुत सरल दिखाई दिया। शानदार गोग्लाइट्स ने दुर्लभ 'पूर्व' इकाई का उपयोग करते हुए कई टेबल कोल्स निर्दिष्ट किए थे।

width: 22ex;

सबसे पहले मुझे स्टम्प किया गया था ("एक 'एक्स' क्या है?"), फिर यह मेरे पास वापस आ गया: मुझे लगता है कि मुझे सालों पहले से कुछ याद था जब मैं सीएसएस के बारे में सीख रहा था। CSS3 युक्ति से :

[ पूर्व इकाई ] पहले उपलब्ध फ़ॉन्ट की प्रयुक्त एक्स-ऊंचाई के बराबर है । एक्स-ऊंचाई इसलिए कहा जाता है क्योंकि यह अक्सर लोअरकेस "एक्स" की ऊंचाई के बराबर होता है। हालाँकि, एक 'पूर्व' को उन फोंट के लिए भी परिभाषित किया गया है जिनमें "x" नहीं है।

सही और उचित। लेकिन मैंने वास्तव में इसे पहले कभी इस्तेमाल नहीं किया है (बहुत कम खुद इसका इस्तेमाल किया है)। मैं बहुत आम तौर पर एम्स का उपयोग करता हूं, और उनके मूल्य की सराहना करता हूं, लेकिन "पूर्व" क्यों? यह एमएम की तुलना में बहुत कम मानक मापक है, और कहीं कम उपयोगी है।

इस विषय पर चर्चा करते हुए मैंने पाया कि कुछ पृष्ठों में से एक है स्टीफन पोली की http://www.xs4all.nl/~sbpoley/webmatters/emex.html । स्टीफन अच्छे अंक बनाते हैं, हालांकि, उनकी चर्चा मेरे लिए अनिर्णायक है।

तो मेरा सवाल है: वेब डिज़ाइन के लिए 'पूर्व' इकाई का क्या मूल्य है?

(इस सवाल को व्यक्तिपरक टैग किया जा सकता है, लेकिन मैं उस निर्णय को खुद से अधिक अनुभवी SO'ers को छोड़ दूंगा।)

जवाबों:


124

यह उपयोगी है जब आप अपने पाठ के निचले अक्षरों की ऊंचाई के संबंध में कुछ आकार देना चाहते हैं। उदाहरण के लिए, एक डिजाइन पर काम करने की कल्पना करें जैसे:

वैकल्पिक शब्द


डिजाइन के टाइपोग्राफिक आयाम में, अक्षरों की ऊंचाई बाकी तत्वों के लिए महत्वपूर्ण स्थानिक संबंध है। स्रोत छवि में ऊपर की पंक्तियाँ पाठ की x-ऊँचाई को इंगित करने में मदद करने के लिए लक्षित हैं, लेकिन वे यह भी दिखाते हैं कि उस पाठ के चारों ओर डिज़ाइन करते समय दिशानिर्देश कहाँ होंगे।

जैसा कि जोनाथन ने टिप्पणियों में बताया, पूर्व केवल एम (चौड़ाई) का ऊंचाई संस्करण है।


29
सिर्फ जोड़ने के लिए, यह चौड़ाई के लिए '
ईएम

3
@Joel किसी दिए गए फ़ॉन्ट के लिए m की चौड़ाई और x की ऊँचाई के बीच का अनुपात क्या है? हालांकि यह तय हो गया है, यह संभावित रूप से गणना करना बहुत मुश्किल हो सकता है, क्योंकि हर फ़ॉन्ट का उसके m और x के बीच एक अलग और मनमाना अनुपात होता है। इसलिए जब डिजाइन करने वाले तत्व प्रकार के सापेक्ष होने चाहिए, तो अनुपात को स्वयं निर्धारित करने के बजाय, आप अनुपात को रखने के लिए x-ऊँचाई पर भरोसा कर सकते हैं।
रेक्स एम

2
एक और काफी गूढ़ बात यह है कि मोज़िला गेको के अनुसार एम्स का उपयोग करने वालों की तुलना में थोड़ा अधिक सटीक रूप से वस्तुओं का उपयोग कर सकते हैं। डिफ़ॉल्ट "गैर-स्टाइल" एक एमएम का आकार 10.06667px है जबकि एक पूर्व का आकार 6px है। इसका मतलब यह है कि जब स्केलिंग ईमोज़ फ़ायरफ़ॉक्स को स्केलिंग एक्ज़िट होने की तुलना में अधिक बार राउंड करना होता है।
बेनिफिटकाह

1
जबकि आम तौर पर सही नहीं होता है, यह कल्पना करना वैध है कि 2ex 1em के समान आकार के बारे में है (हालांकि एक बड़े अक्षर की ऊंचाई आमतौर पर 1em से कुछ कम होगी)। CSS युक्ति यहां तक ​​कहती है "जहाँ x-ऊँचाई निर्धारित करना असंभव या अव्यवहारिक है, 0.5em का मान होना चाहिए।"
natevw

20
@JonathanFingland @RexM प्रिंट टाइपोग्राफी के विपरीत, सीएसएस में, emइकाई है नहीं एक चौड़ाई को मापने - यह उपायों ऊंचाई फ़ॉन्ट का। 1 emगणना font-sizeमूल्य है , और font-size"ग्लिफ़ की वांछित ऊंचाई" निर्दिष्ट करता है । तो दोनों emऔर exएक ऊंचाई मापने। ( chहालांकि, एक चौड़ाई को मापता है।)
रोरी ओ'केन

19

प्रश्न का उत्तर देने के लिए, एक उपयोग सुपरस्क्रिप्ट और सबस्क्रिप्ट के साथ है। उदाहरण:

sup {
    font-size: 75%;
    height: 0;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
    bottom: 1ex;
}

1
मुझे नहीं लगता कि वास्तव में यह समझाने में मदद मिलती है कि "पूर्व" क्या है।
डस्कवॉफ-एक्टिव-

11
सवाल यह है कि "पूर्व डिजाइन इकाई ने वेब डिज़ाइन को क्या मूल्य दिया है?" नहीं "एक पूर्व इकाई क्या है?" जोएल मूल प्रश्न में एक पूर्व इकाई को परिभाषित करने का एक बहुत अच्छा काम करता है। मैं एक व्यावहारिक उदाहरण प्रदान कर रहा हूं कि आप सुपरस्क्रिप्ट को स्थिति देने के लिए इसका उपयोग कैसे कर सकते हैं।
जेपी

1
अच्छा व्यावहारिक उदाहरण जो सीधे सवाल का जवाब देता है। बहुत बढ़िया।
बासिल बोर्के

2

यहाँ एक और बात पर विचार करना चाहिए कि जब कोई उपयोगकर्ता अपने फ़ॉन्ट आकार (शायद ctrl + माउस व्हील (विंडोज़) का उपयोग करके) का उपयोग करता है, तो आपका पृष्ठ कैसे मापता है।

मैंने उन्हें एम के साथ इस्तेमाल किया है .. पैडिंग-लेफ्ट: 2 एम; पैडिंग-राइट: 2 एम;

और पैडिंग-बॉटम के साथ पूर्व: 2 पूर्व; गद्दी-शीर्ष: 2 पूर्व;

इस प्रकार एक ऊर्ध्वाधर स्केलिंग संपत्ति के लिए माप की एक ऊर्ध्वाधर इकाई और क्षैतिज रूप से स्केलिंग संपत्ति के लिए माप की एक क्षैतिज इकाई का उपयोग करना।


5
एम और एक्स दोनों ऊर्ध्वाधर इकाइयां हैं, क्योंकि उन्हें क्रमशः ऊपरी मामले "एम" और निचले मामले "एक्स" की ऊंचाई के रूप में परिभाषित किया गया है। वे ऊर्ध्वाधर और क्षैतिज लंबाई दोनों के लिए उपयोग किया जा सकता है।
जाकबीस

इसे जोड़ने के लिए, chशून्य संख्या ("0") की चौड़ाई को मापने वाली एक क्षैतिज इकाई है।
मैट एफ।

1

सीएसएस युक्ति में इसे रखने का मूल्य , यदि आप वास्तव में पूछ रहे हैं, तो ठीक वैसा ही है जैसा कि एम यूनिट होने का मूल्य है।

यह आपको सापेक्ष आकारों में फ़ॉन्ट सेट करने में सक्षम बनाता है ।

आप नहीं जानते कि मेरा आधार फ़ॉन्ट आकार क्या है। इसलिए वेब डिज़ाइन के लिए एक अच्छी रणनीति फ़ॉन्ट आकार सेट करना है जो सापेक्ष हैं, बजाय निरपेक्ष; "दस पिक्सल" जैसे एक निश्चित आकार के बजाय "अपने सामान्य आकार को दोगुना करें" या "अपने सामान्य आकार से थोड़ा छोटा"।


मैं इससे सहमत हु। लेकिन क्या इसके लिए एम स्पेक पर्याप्त नहीं है और अधिक विश्वसनीय है?
जोएल

@JoelPotter हाँ, लेकिन केवल चौड़ाई के लिए; ऊंचाइयों के लिए, exसमान प्रतीत होता है।
एविव्स सोचता है कि एसई बुराई है

5
@ANeves गलत है। CSS में एक em एक फॉन्ट की ऊंचाई (लगभग) है, न कि चौड़ाई । प्रिंट टाइपोग्राफी में, उन्हें एक अपरकेस की चौड़ाई से एक इम का विचार आया M। लेकिन सीएसएस परिष्कृत emविकिपीडिया देखें ।
बेसिल बॉर्क

2
यदि आप चौड़ाई चाहते हैं, तो chइकाई का उपयोग किसी अन्य उत्तर के अनुसार करें।
बेसिल बोर्के

1

ध्यान दें कि, "सिंगल / डबल लाइन रिक्ति" जैसे शब्दों का अर्थ वास्तव में दो आसन्न रेखाओं के बीच ऑफसेट है, जिन्हें एमएम द्वारा मापा जाता है । तो "डबल लाइन रिक्ति" का अर्थ है कि प्रत्येक पंक्ति की ऊंचाई 2 एम है

इसलिए, यदि आप एक ऊर्ध्वाधर दूरी निर्दिष्ट करना चाहते हैं जो "लाइनों" के लिए आनुपातिक है, तो उन्हें उपयोग करें। यदि आप लोअरकेस अक्षर की वास्तविक ऊंचाई चाहते हैं, तो मैं केवल पूर्व का उपयोग करता हूं, मैं कहता हूं, बहुत दुर्लभ उदाहरण।

अद्यतन: वेब मानक ब्राउज़र को फॉन्ट से पूर्व या व्युत्पन्न 0.5em का उपयोग करने की अनुमति देता है।

हालाँकि, किसी भी "x-height" जानकारी को फ़ॉन्ट (OpenType या webfont) में विश्वसनीय तरीके से एम्बेड करने का कोई तरीका नहीं है।

इसलिए, पूर्व संभावना पूर्व-इकाई को निरर्थक बना देती है, और बाद में किसी भी विश्वसनीय साधन का अभाव होता है। और यह तथ्य कि या तो संभव है, यह और भी कम विश्वसनीय बनाता है।

इस प्रकार मैं पूर्व इकाई के मूल्य की कमी के लिए तर्क देता हूं।


यह प्रश्न विशेष रूप से इसके मूल्य के लिए पूछता है, इसका अर्थ नहीं।
मैट एफ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.