CSS में फ़ॉन्ट का आकार -% या em?


112

CSS में फोंट का आकार सेट करते समय, क्या मुझे प्रतिशत मान ( %) या का उपयोग करना चाहिए em? क्या आप फायदा बता सकते हैं?


1
2016 में मेरी राय में em और% में कोई अंतर नहीं है। अगर मैं 1.2 एमएम इनपुट करता हूं तो सभी आधुनिक ब्राउज़रों को लगता है कि मैंने 120% का उपयोग किया है और उदाहरण के लिए अगर मैं 0.7
एमएम का

जवाबों:


79

वहाँ एक सूची के अलावा वेब टाइपोग्राफी पर एक बहुत अच्छा लेख है ।

उनका निष्कर्ष:

शरीर पर निर्दिष्ट प्रतिशत (और सफारी 2 के लिए एक वैकल्पिक कैविट) के साथ, ईएमएस में आकार और पाठ-ऊंचाई को आज सामान्य उपयोग में सभी ब्राउज़रों में सटीक, पुन: प्रयोज्य पाठ प्रदान करने के लिए दिखाया गया था। यह एक ऐसी तकनीक है जिसे आप अपने किट बैग में रख सकते हैं और सीएसएस में पाठ को आकार देने के लिए एक सर्वोत्तम अभ्यास के रूप में उपयोग कर सकते हैं जो डिजाइनरों और पाठकों दोनों को संतुष्ट करता है।


29
वास्तव line-heightsमें बिना किसी इकाई के बेहतर लिखा जाता है । यह कल्पना की अनुमति देता है, और पूरी तरह से परेशान ब्राउज़र से बचने के लिए पूरी तरह से बचता है जब यह em
-based

16
मैं लोगों को इस बारे में अवगत कराना चाहता हूं कि यह लेख 2007 का है। तब से आधुनिक ब्राउज़र अधिक आम हो गए हैं, और आधुनिक ब्राउज़र आमतौर पर डिफ़ॉल्ट रूप में फ़ॉन्ट-आकार को बढ़ाने के बजाय ज़ूम-इन करते हैं। इस वजह से, 'px' अधिक आम हो गया है और मेरी राय में एक बेहतर दृष्टिकोण है। बेशक यह बहस का मुद्दा है, लेकिन मैं व्यक्तिगत रूप से उन्हें घोंसले के शिकार के कारण परियोजनाओं में समस्याओं का सामना करना पड़ा है।
मोहाग 519

5
@ एमओएचजी 519 एमिग्स का घोंसला एक खतरनाक जाल है। :)
विष्णुदेव के।

@ Mohag519 आपको उच्च पिक्सेल घनत्व वाले मोबाइल उपकरणों के साथ इच्छित उद्देश्य से बहुत छोटा देने के लिए नहीं है? मुझे नहीं लगता कि हम चाहते हैं कि हमारी साइटें बिल्कुल डेस्कटॉप की तरह हों, लेकिन मोबाइल पर सुपर टिनी;)
जॉन्ब 003

@ johnb003 ऐसे मोबाइल उपकरणों में डिवाइस पिक्सेल अनुपात बड़ा होता है 1। उदाहरण के लिए iPhone 4 की भौतिक स्क्रीन चौड़ाई 640px है, लेकिन यह 320 "CSS" पिक्सेल (DPR = 2) के रूप में दिखाई देता है। तो वेबसाइट छोटी दिखाई नहीं देती है!
बेंजामिन

14

से http://archivist.incutio.com/viewlist/css-discuss/1408

%: कुछ ब्राउज़र फ़ॉन्ट-आकार के लिए प्रतिशत को हैंडल नहीं करते हैं, लेकिन 150% के रूप में 150% की व्याख्या करते हैं। (कुछ NN4 संस्करण, उदाहरण के लिए।) IE में नेस्टेड तत्वों पर प्रतिशत के साथ समस्याएं भी हैं। ऐसा लगता है कि IE मूल तत्व के सापेक्ष viewport के सापेक्ष प्रतिशत का उपयोग करता है। फिर भी एक और समस्या (हालांकि W3C स्पेक्स के अनुसार सही है), Moz / Ns6 में, आप उन तत्वों के सापेक्ष प्रतिशत का उपयोग नहीं कर सकते हैं जिनमें कोई निर्दिष्ट ऊँचाई / चौड़ाई नहीं है।

em: कभी-कभी ब्राउज़र गलत संदर्भ आकार का उपयोग करते हैं, लेकिन सापेक्ष इकाइयों में यह कम से कम समस्याओं वाला एक है। आप इसे पीएक्स के रूप में कभी-कभी व्याख्यायित कर सकते हैं।

पीटी: प्रस्तावों के बीच बहुत मुश्किल है, और प्रदर्शन के लिए उपयोग नहीं किया जाना चाहिए। हालांकि यह प्रिंट उपयोग के लिए काफी सुरक्षित है।

px: स्क्रीन पर एकमात्र विश्वसनीय निरपेक्ष इकाई। इसे प्रिंट में गलत तरीके से व्याख्या किया जा सकता है, क्योंकि एक बिंदु में आमतौर पर कई पिक्सेल होते हैं, और इस तरह सब कुछ हास्यास्पद रूप से छोटा हो जाता है।


पीटी बात के बारे में। मेरे पास एक महान तर्क था /। उस (और खोए हुए) के बारे में। मेरे पास आपके जैसा ही दृष्टिकोण था, किसी को यह जानने के लिए अच्छा है कि पीओवी :)
विन्सेन्ट मैकनाब

12
क्या आप वास्तव में कह रहे हैं कि कुछ नेटस्केप नेविगेटर 4 उपयोगकर्ता मेरे पृष्ठ को सही ढंग से देखने में सक्षम नहीं हो सकते हैं यदि मैं फ़ॉन्ट आकार के लिए प्रतिशत का उपयोग करूंगा?
नौसिखिया

4
उद्धृत चर्चा 2002 से है। क्या यह अभी भी प्रासंगिक है? क्या em या% बग के साथ सक्रिय उपयोग में कोई ब्राउज़र हैं?
बेनी चेर्नियाव्स्की-पास्किन

1
ब्राउज़रों में 20 साल पुराने कीड़े का हवाला देना उपयोगी उत्तर नहीं है।
d512

7

दोनों फ़ॉन्ट-आकार को समायोजित करते हैं जो यह था। 1.5em 150% के समान है। एकमात्र लाभ पठनीयता प्रतीत होता है, जो भी आप सबसे अधिक आरामदायक होते हैं उसे चुनें।


क्या कोई मुझे समझा सकता है कि यह मतदान क्यों हो रहा है? यह ठीक उसी प्रकार है जब मैंने उन्हें em और प्रतिशत के बीच के अंतर को समझा। आजकल एक का उपयोग करने का कोई फायदा नहीं है। महत्वपूर्ण बात यह है कि आप एक आकार का उपयोग करते हैं जो आधार फ़ॉन्ट आकार के सापेक्ष होता है।
ली थोबाल्ड

1
धन्यवाद ली, मैं सिर्फ IE6, IE7, फ़ायरफ़ॉक्स 3, सफारी 3, ओपेरा 9.5, और Google क्रोम, सभी विंडोज पर यह परीक्षण किया है और वे सभी मुझे एक ही लगते हैं! <p style = "font-size: 0.6em?"> यह एक परीक्षण है </ p> <p style = "font-size: 60%;"> यह एक परीक्षण है </ p>
Liam

7

वास्तविक अंतर तब स्पष्ट होता है जब आप इसका उपयोग फ़ॉन्ट-आकारों के लिए नहीं करते हैं। एक की स्थापना paddingकी 1emके समान नहीं है 100%emहमेशा फ़ॉन्ट-आकार के सापेक्ष होता है। लेकिन %फ़ॉन्ट-आकार, चौड़ाई, ऊंचाई के सापेक्ष हो सकता है और शायद कुछ अन्य चीजें जिनके बारे में मुझे पता नहीं है।


5

यह देखते हुए कि (लगभग?) सभी ब्राउज़र अब पृष्ठ को एक पूरे के रूप में आकार देते हैं, केवल पाठ के बजाय, सुलभ फ़ॉन्ट के आकार के pxबनाम %बनाम emएस के साथ पिछले मुद्दे बल्कि मूट होते हैं।

तो, जवाब है कि यह शायद कोई फर्क नहीं पड़ता। आपके लिए जो कुछ भी काम करता है उसका उपयोग करें।

% अच्छा है क्योंकि यह सापेक्ष आकार बदलने की अनुमति देता है।

px अच्छा है क्योंकि इसका उपयोग करते समय अपेक्षाओं को प्रबंधित करना काफी आसान है।

em उपयोगी हो सकता है जब लेआउट तत्वों के लिए भी उपयोग किया जाता है क्योंकि यह पाठ आकार से संबंधित आनुपातिक आकार के लिए अनुमति दे सकता है।


भ्रामक जवाब, विशेष रूप से उन लोगों के लिए जो पहली जगह में सीएसएस के बारे में ज्यादा नहीं जानते हैं। इस तथ्य की अवहेलना करते हुए कि सीएसएस तार्किक पिक्सल को परिभाषित करता है, जो एक दशक पहले सीएसएस-सक्षम मोबाइल उपकरणों के हमले के लिए निस्संदेह जल्दबाजी में निर्णय पर आधारित एक भयानक विचार था, पिक्सल पूरी तरह से ब्राउज़रों और उपयोगकर्ताओं के विवेक पर हैं, जहां तक ​​डिफ़ॉल्ट फ़ॉन्ट आकार जाता है। , कम से कम। इसके अलावा, अब हम widly अलग स्क्रीन पहलू अनुपात (और नहीं हमेशा उपकरणों है साथ एक स्क्रीन) और 240p से 2400p को लेकर संकल्प। जावास्क्रिप्ट के बिना CSS में पिक्सेल का उपयोग करना लगभग बेकार है।
एमएन

@ अच्छी तरह से, ध्यान दें कि यह उत्तर 8 साल पुराना है। कि इंटरनेट के समय में एक लंबा समय है। कहा कि, अगर आदर्श नहीं हैं, तो पिक्सेल अभी भी ठीक हैं। अधिकांश (सभी?) ब्राउज़र विशेष रूप से डिवाइस पर पर्याप्त रूप से आकार देने वाले पिक्सेल फ़ॉन्ट को समायोजित करते हैं। आज, हालांकि, मैं आमतौर पर माप की मेरी इकाई के रूप में रेम का उपयोग करता हूं।
डीए।

शायद मुझे कुछ याद आ रहा है, लेकिन अगर किसी की पिक्सेल लंबाई के साथ कोई लाभ होता है? वे "ठीक" या "आदर्श" क्यों हैं? emउदाहरण के लिए बनाम । उस तरफ से, मुझे लगता है कि एसओ पर जवाब कालातीत होने का प्रयास करना चाहिए - यह एक ज्ञान का आधार है। प्रोग्रामिंग का विकिपीडिया :) जैसा कि विकिपीडिया तथ्यों को प्रतिबिंबित करने के लिए अपडेट किया गया है, इसलिए SO को जवाब देना चाहिए, मेरी विनम्र राय में।
amn

@amn मैंने यह नहीं कहा कि वे आदर्श थे या कोई वास्तविक बड़ा लाभ था। मैं सिर्फ ओपी के सवाल का जवाब दे रहा था। जैसा कि आप कालातीत होने के लिए प्रयास करते हैं, यदि आप अभी से वेब के भविष्य की भविष्यवाणी कर सकते हैं, तो आपके लिए अधिक शक्ति! लेकिन मेरे पास अपने उत्तरों के एक दशक के मूल्य को लगातार अपडेट करने का समय नहीं है। उम्मीद है कि लोग जवाबों पर समय की मुहर को देखने के लिए पर्याप्त जानते हैं और इसे ध्यान में रखते हैं।
डीए।

0

सीएसएस इकाइयों %और के बीच अंतर के बारे में em

जहां तक ​​मैं समझता हूं (कम से कम सैद्धांतिक रूप से / वैचारिक रूप से, लेकिन संभवतः इन दो इकाइयों को ब्राउज़रों में कैसे लागू किया जा सकता है) ये दोनों इकाइयां बराबर हैं, यानी यदि आप अपने emमूल्य को कई गुना बढ़ाते हैं 100और फिर उसी के emसाथ प्रतिस्थापित करते हैं तो %वही होना चाहिए?

अगर वास्तव में em और% के बीच कुछ वास्तविक अंतर है तो क्या कोई इसे समझा सकता है (या स्पष्टीकरण के लिए लिंक प्रदान कर सकता है)?

(मैं अपनी इस टिप्पणी को जोड़ना चाहता था, जहां यह होगा, अर्थात उत्तर के ठीक नीचे, "Liam, answered Sep 25 '08 at 11:21"क्योंकि मैं यह भी जानना चाहता हूं कि उनका उत्तर क्यों अस्वीकृत किया गया था, लेकिन मैं यह पता नहीं लगा सका कि मुझे अपनी टिप्पणी कैसे देनी है और इसलिए लिखना था यह "धागा वैश्विक" उत्तर)


-1

जैसा कि गाल्व का उल्लेख है, वेब टाइपोग्राफी के लिए px सबसे विश्वसनीय है, जैसा कि आप पेज पर जो कुछ भी करते हैं वह ज्यादातर कंप्यूटर मॉनीटर के संदर्भ में किया जाता है। पूर्ण आकार के साथ समस्या यह है कि कुछ ब्राउज़र (IE) वेब-पेज पर पिक्सेल-मूल्य तत्वों को स्केल नहीं करेंगे, इसलिए जब आप ज़ूम इन / आउट करने का प्रयास करते हैं, तो उन तत्वों को छोड़कर सब कुछ समायोजित हो जाता है।

मुझे नहीं पता कि IE8 इसे ठीक से संभालता है, लेकिन सभी अन्य ब्राउज़र विक्रेता पिक्सेल को ठीक से संभालते हैं और यह अभी भी एक अल्पसंख्यक मामला है जहां उपयोगकर्ता को पाठ को छोटा करने / कम करने की आवश्यकता है (एसओ पर यह पाठ बॉक्स शायद अपवाद रहा है)। यदि आप वास्तव में गंदा होना चाहते हैं, तो आप हमेशा अपने टेक्स्ट के आकार को बड़ा बनाने के लिए एक जावास्क्रिप्ट फ़ंक्शन जोड़ सकते हैं और उपयोगकर्ता को "छोटा" / "बड़ा" बटन प्रदान कर सकते हैं।


1
यदि आप ज़ूम का उपयोग करते हैं तो IE7 पिक्सेल-मान को ठीक करता है। IE6 में केवल पाठ-आकार ज़ूम नहीं था। ज़ूम उन डिज़ाइनरों की वजह से एक आवश्यकता बन गई, जिन्होंने पृष्ठ आकार परिवर्तन के साथ पृष्ठ को रीफ़्लो करने की अनुमति देने के बजाय निश्चित पिक्सेल पैमानों का उपयोग किया था।
माइक डिमिक्क

यह अभी भी IE6 के साथ एक मुद्दा है, लेकिन, फिर, EVERYTHING अभी भी IE6 के साथ एक मुद्दा है। जबकि मैंने अतीत में px से परहेज किया था, इस कारण से, वेब पेज की अवधारणा एक संपूर्ण (बनाम jsut पाठ) के रूप में जूमिंग मानक बन गई है और मैंने खुद को बहुत अधिक बार px का उपयोग करते हुए पाया है।
डीए।

-1

याहू यूजर इंटरफेस लाइब्रेरी ( http://developer.yahoo.com/yui/ ) में ब्राउज़र विशिष्ट सेटिंग्स को "रीसेट" करने के लिए उपयोग की जाने वाली आधार सीएसएस कक्षाओं का एक अच्छा सेट है ताकि साइट को प्रदर्शित करने का आधार सभी के लिए समान हो (समर्थित) ब्राउज़रों।

YUI के साथ एक प्रतिशत का उपयोग करने वाला है।


मैं YUI रीसेट का उपयोग कर रहा हूं, लेकिन फिर एहसास हुआ कि ब्राउजर टेक्स्ट-साइज सेटिंग्स न तो काम करते हैं! यदि आपने पाठ के आकार की सेटिंग्स को तोड़ दिया है, तो शरीर पर px सेट होने पर% का उपयोग करने में कोई बिंदु न देखें।
जेसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.