सीएसएस: 100% फ़ॉन्ट आकार - 100% क्या?


138

रहे हैं कई लेख और सवालों के बारे में प्रतिशत के आकार बनाम अन्य आकार फोंट। हालाँकि, मुझे यह पता नहीं चल पाया है कि प्रतिशत-मूल्य का संदर्भ क्या माना जाता है। मैं समझता हूं कि यह 'सभी ब्राउज़रों में समान आकार' है। मैंने यह भी पढ़ा है, उदाहरण के लिए:

प्रतिशत (%): प्रतिशत इकाई बहुत कुछ "एम" इकाई की तरह है, कुछ मूलभूत अंतरों के लिए बचाएं। सबसे पहले और सबसे महत्वपूर्ण, वर्तमान फ़ॉन्ट-आकार 100% (यानी 12pt = 100%) के बराबर है। प्रतिशत इकाई का उपयोग करते समय, आपका पाठ मोबाइल उपकरणों और पहुँच के लिए पूरी तरह से स्केलेबल रहता है।

स्रोत: http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/

लेकिन अगर आप कहते हैं "यानी 12 पीटी = 100%", तो इसका मतलब है कि आपको पहले परिभाषित करना होगा font-size: 12pt। क्या यह ऐसे ही कार्य करता है? आप पहले एक निरपेक्ष माप में एक आकार को परिभाषित करते हैं, और फिर इसे '100%' के रूप में संदर्भित करते हैं? बहुत समझदारी नहीं है, क्योंकि कई नमूने कहते हैं कि यह उपयोगी है:

body {
  font-size: 100%;
}

तो ऐसा करके, क्या के लिए फ़ॉन्ट आकार रिश्तेदार है? मैंने देखा कि मेरी स्क्रीन पर जो आकार मुझे दिखाई दे रहा है, वह हर फॉन्ट के लिए अलग है। मिसाल के तौर पर एरियल, टाइम्स न्यू रोमन से बड़ी हैं। इसके अलावा, अगर मैं सिर्फ यह करना होगा, शरीर के आकार = 100%, होगा कि इसका मतलब है कि यह सभी ब्राउज़रों पर एक ही हो जाएगा? या केवल अगर मैं पहली बार एक निरपेक्ष मूल्य को परिभाषित करता हूं?

अद्यतन, सैट JUL 23

मैं वहां पहुंच रहा हूं, लेकिन कृपया मेरे साथ सहन करें।

इसलिए, यदि मैं सही तरीके से समझूं तो% मान डिफ़ॉल्ट ब्राउज़र फ़ॉन्ट आकार से संबंधित है। खैर, यह अच्छा है, लेकिन मुझे फिर से कई अन्य प्रश्न हैं:

  1. क्या यह मानक आकार हमेशा हर ब्राउज़र संस्करण के लिए समान होता है, या क्या वे संस्करणों के बीच भिन्न होते हैं?
  2. मैं ! पाया गया (नीचे दी गई छवि देखें) Google क्रोम के लिए सेटिंग्स (पहले कभी इस पर ध्यान नहीं दिया!), और मुझे मानक "सेरिफ़", "सेन्स-सेरिफ़" और "मोनोस्पेस" सेटिंग्स दिखाई देती हैं। लेकिन मैं अन्य फोंट के लिए इसकी व्याख्या कैसे करूं? कहो मैं परिभाषित करता हूं font: 100% Georgia;, ब्राउज़र किस आकार को लेगा? क्या यह सेरिफ़ के लिए मानक आकार को देखेगा, या ब्राउज़र के लिए "जॉर्जिया" फ़ॉन्ट का मानक आकार होगा
  3. कई वेबसाइटों पर मैंने जैसी चीजें पढ़ी हैं Sizing text and line-height in ems, with a percentage specified on the body [..], was shown to provide **accurate, resizable text across all browsers** in common use today। लेकिन अब जो मैं सीख रहा हूं उससे मुझे विश्वास है कि आपको वास्तव में या तो resizable टेक्स्ट (% या em का उपयोग करके, जैसे कि वे इस उद्धरण में क्या सलाह देते हैं) के बीच चयन करना चाहिए, या 'ब्राउज़र के पार सटीक, सुसंगत फ़ॉन्ट-आकार' (px या का उपयोग करके) आधार के रूप में पीटी)। क्या ये सही है?

Google सेटिंग:

Google Chrome सेटलिंस

यह है कि मुझे लगता है कि अगर आप पूर्ण मूल्यों में आकार को परिभाषित नहीं करते हैं तो चीजें ऐसी दिख सकती हैं।

यहां छवि विवरण दर्ज करें

जवाबों:


89

ब्राउज़र डिफ़ॉल्ट जो फ़ायरफ़ॉक्स के लिए 16pt जैसा कुछ है, आप फ़ायरफ़ॉक्स विकल्पों में जाकर, सामग्री टैब पर क्लिक करके और फ़ॉन्ट आकार की जांच कर सकते हैं। आप अन्य ब्राउज़रों के लिए भी ऐसा कर सकते हैं।

मैं व्यक्तिगत रूप से अपनी वेबसाइटों के डिफ़ॉल्ट फ़ॉन्ट आकार को नियंत्रित करना पसंद करता हूं, इसलिए एक सीएसएस फ़ाइल में जो हर पृष्ठ में शामिल है, मैं बॉडी डिफ़ॉल्ट सेट करूंगा, जैसे:

body {
    font-family: Helvetica, Arial, sans-serif;
    font-size: 14px
}

अब मेरे सभी HTML टैग्स का फॉन्ट-साइज़ 14px का फॉन्ट-साइज़ इनहेरिट करेगा।

कहो कि मैं चाहता हूं कि सभी डिवॉर्स के शरीर का आकार 10% बड़ा हो, मैं बस यही करता हूं:

div {
    font-size: 110%
}

अब कोई भी ब्राउज़र जो मेरे पृष्ठों को देखता है, स्वतः ही सभी divs को शरीर से 10% बड़ा बना देगा, जो 15.4px की तरह होना चाहिए।

अगर मैं चाहता हूँ कि सभी डिव का फॉन्ट-साइज़ 10% छोटा हो, तो मैं करता हूँ:

div {
    font-size: 90%
}

यह सभी डिवीजनों को 12.6px का फॉन्ट-आकार देगा।

आपको यह भी पता होना चाहिए कि चूंकि फॉन्ट-साइज़ विरासत में मिला है, इसलिए कि प्रत्येक नेस्टेड डिव का फॉन्ट साइज़ 10% तक घट जाएगा, इसलिए:

<div>Outer DIV.
    <div>Inner DIV</div>
</div>

इनर डिव का फॉन्ट-साइज़ 11.34px (90% 12.6px) होगा, जो शायद इरादा नहीं था।

इससे स्पष्टीकरण में मदद मिल सकती है: http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#value-def-percentage


धन्यवाद! इससे यह काफी हद तक साफ हो जाता है। लेकिन मैं अभी भी% का उपयोग करते समय 'सटीकता' या 'स्थिरता' का दावा करने वाले लेखों के बारे में सोच रहा हूं। यदि मैं आपके उत्तर की सही व्याख्या करता हूं तो यह काफी गलत प्रतीत होता है। मैंने कुछ अतिरिक्त प्रश्नों के साथ प्रश्न को अद्यतन किया है ...
user852091

3
पूछे गए प्रश्न का उत्तर (100% क्या?) गलत है, कई अशुद्धियां हैं (सभी तत्व वंशानुक्रम आकार नहीं हैं), और उन मुद्दों पर नोट्स और राय हैं जिनके बारे में नहीं पूछा गया था।
जुक्का के। कोर्पेला

पिक्सेल घनत्व वास्तव में ध्यान में रखा जाना है। एक 4K फोन पर पृष्ठ का 100% कुछ ऐसा होगा जो यह सोचेगा कि इसमें क्षैतिज और ऊर्ध्वाधर संकल्प के हजारों पिक्सेल हैं। NO_SCALE, जैसे वेब-ऐप्स, आदि के साथ फ़्लैश सामग्री के लिए, नियंत्रण एलजी जी 3 पर उदाहरण के लिए, विशेष रूप से मेनू, छोटे होंगे। यह पिक्सेल के आकार वाले कुछ HTML सामग्री के लिए समान रूप से सत्य है। एक तरह से या किसी अन्य, पिक्सेल घनत्व (पिक्सेल प्रति इंच), को पूरी तरह से रिश्तेदार इकाइयों या जावास्क्रिप्ट-आधारित डायनामिक आकार बदलने के उपयोग के माध्यम से ध्यान में रखा जाना चाहिए।
22

1
पुष्टि की गई कि आधुनिक ब्राउज़र अभी भी 12pt / 16px @ 96ppi को डिफ़ॉल्ट के रूप में उपयोग करते हैं। संबंधित नोट पर, आप रूट (html तत्व, या ब्राउज़र डिफ़ॉल्ट) के सापेक्ष किसी विशिष्ट तत्व को हमेशा स्केल करने के लिए "em" के बजाय "rem" का उपयोग कर सकते हैं। अपेक्षाकृत आकार के तत्वों की एक जटिल पदानुक्रम के साथ उपयोगी हो सकता है।
बीजर

बेहतर है कि आप अपने font-sizeउपयोग की जाने वाली सापेक्ष इकाइयों को सेट करें em, जैसे rem, या %। उपयोग pxकरने से ब्राउज़र का डिफ़ॉल्ट फ़ॉन्ट आकार ओवरराइड हो जाएगा! कई उपयोगकर्ता पाठ पढ़ने को आसान बनाने के लिए एक कस्टम फ़ॉन्ट आकार निर्दिष्ट करते हैं।
mfluehr

15

मेरी समझ यह है कि जब फॉन्ट को निम्नानुसार सेट किया जाता है

body {
  font-size: 100%;
}

ब्राउज़र उस ब्राउज़र के लिए उपयोगकर्ता सेटिंग्स के अनुसार फ़ॉन्ट को प्रस्तुत करेगा।

युक्ति कहती है कि% का प्रतिपादन किया गया है

माता-पिता तत्व के फ़ॉन्ट आकार के सापेक्ष

http://www.w3.org/TR/CSS1/#font-size

इस मामले में, मुझे लगता है कि ब्राउज़र सेट करने के लिए क्या मतलब है।


वास्तव में जनक bodyहै html। इसलिए ब्राउज़र डिफ़ॉल्ट नहीं, बल्कि body { font-size: 100%; }100% htmlफ़ॉन्ट का आकार होगा। आमतौर पर ये एक ही में होते हैं, हालांकि, आप प्रभावी रूप से सही हैं। लेकिन कभी-कभी आपको एक html { font-size: ??? }नियम दिखाई देगा ।
छरवे

9

font-sizeसंपत्ति के मूल्य में एक प्रतिशत मूल तत्व के फ़ॉन्ट आकार के सापेक्ष है । CSS 2.1 इसे अस्पष्ट और भ्रामक रूप से कहता है ("विरासत में प्राप्त फ़ॉन्ट आकार" की चर्चा करते हुए), लेकिन CSS3 पाठ इसे बहुत स्पष्ट रूप से कहता है।

bodyतत्व का जनक मूल तत्व है, अर्थात htmlतत्व। जब तक एक स्टाइल शीट में सेट नहीं किया जाता है, रूट तत्व का फ़ॉन्ट आकार कार्यान्वयन-निर्भर है। यह आमतौर पर उपयोगकर्ता सेटिंग्स पर निर्भर करता है।

सेटिंग font-size: 100%कई मामलों में व्यर्थ है, क्योंकि एक तत्व अपने माता-पिता के फ़ॉन्ट आकार (उसी परिणाम के लिए अग्रणी) को विरासत में लेता है, अगर कोई स्टाइल शीट अपने स्वयं के फ़ॉन्ट आकार को सेट नहीं करता है। हालांकि, यह अन्य स्टाइल शीट (ब्राउज़र डिफ़ॉल्ट स्टाइल शीट सहित) में सेटिंग्स को ओवरराइड करने के लिए उपयोगी हो सकता है।

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

इनपुट {फ़ॉन्ट-आकार: 100%}

के लिए bodyतत्व, तार्किक रूप से अनावश्यक सेटिंग font-size: 100%के रूप में यह (ब्राउज़रों में कि शायद अब उनके महत्व खो दिया है) कुछ ब्राउज़र कीड़े के खिलाफ मदद के लिए माना जाता है, काफी अक्सर प्रयोग किया जाता है।


3
एक उदाहरण जहां font-size:100%एक उद्देश्य की सेवा हो सकती है वह क्वर्क मोड में है, जहां फ़ॉन्ट आकार टेबल में विरासत में नहीं हैं। इस शैली के साथ, तालिकाओं को मूल फ़ॉन्ट आकार मिलता है। बेशक, उनके सही दिमाग में कोई भी Quirks मोड का उपयोग नहीं करता है ...
Mr Lister

4

यह डिफ़ॉल्ट ब्राउज़र फ़ॉन्ट-आकार के सापेक्ष है जब तक कि आप इसे pt या px में मान से ओवरराइड नहीं करते।


तो यह अलग होगा अगर हर ब्राउज़र?
user852091

2
हां, हर ब्राउज़र की अपनी डिफ़ॉल्ट सेटिंग्स होती हैं, जिसमें फ़ॉन्ट-आकार भी शामिल है। इसलिए आपको आमतौर पर सीएसएस रीसेट का उपयोग करना होगा।
रॉकेट जुरा

1
यह गलत है। यह मूल तत्व का प्रतिशत है। आपको डिफ़ॉल्ट फ़ॉन्ट-आकार के प्रतिशत का अनुभव हो सकता है क्योंकि आपके मूल तत्व को डिफ़ॉल्ट फ़ॉन्ट-आकार विरासत में मिला है।
Zectbumo

@Zectbumo राइट, बिल्कुल सटीक नहीं। लेकिन सवाल का उल्लेख है body, एक मनमाने ढंग से नेस्टेड तत्व नहीं है, इसलिए उत्तर एक छोटे तारांकन के साथ सही है :)
रॉकेट

: - / इसके अलावा यह नेस्टेड है क्योंकि <body> के पैरेंट <html> है
Zectbumo

4

क्षमा करें, यदि मुझे पार्टी में देरी हो रही है, लेकिन आपके संपादन में आप इस बारे में एक टिप्पणी करते हैं font: 100% Georgia, जिसके अन्य उत्तरों पर प्रतिक्रिया नहीं हुई है।

font: 100% Georgiaऔर के बीच अंतर है font-size:100%; font-family:'Georgia'। यदि वह सभी आशुलिपि विधि थी, तो फॉन्ट-आकार वाला भाग निरर्थक होगा। लेकिन यह उनके डिफ़ॉल्ट मूल्यों के लिए बहुत सारे गुण भी निर्धारित करता है: रेखा की ऊंचाई normal(या लगभग 1.2), शैली के लिए डिट्टो (गैर-इटैलिक) और वजन (गैर-बोल्ड)।

बस इतना ही। अन्य जवाबों में पहले से ही सब कुछ का उल्लेख था, जिसका उल्लेख करना था।


3

जैसा कि आपने समझदारी दिखाते हुए कहा, font-size: 100%;सभी ब्राउज़रों में समान नहीं होगा। हालांकि, आप अपने सीएसएस फ़ाइल में अपना फ़ॉन्ट चेहरा सेट करेंगे, इसलिए यह सभी ब्राउज़रों में एक ही (या एक कमबैक) होगा।

मेरा मानना ​​है कि -बेड डिज़ाइन के font-size: 100%;साथ संयोजन करते समय यह बहुत उपयोगी हो सकता है em। जैसा कि इस लेख से पता चलता है, यह एक बहुत ही लचीली वेबसाइट बनाएगा।

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


1

उस फ़ॉन्ट पर निर्धारित डिफ़ॉल्ट आकार के सापेक्ष।

यदि कोई आपके पेज को वेब ब्राउजर पर खोलता है, तो एक डिफ़ॉल्ट फ़ॉन्ट और फ़ॉन्ट आकार है जो इसका उपयोग करता है।


0

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


0

1996 के लिए सभी विशेष विवरण के अनुसार , font-sizeमूल तत्व (गणना) फ़ॉन्ट-आकार के संदर्भ में प्रतिशत मूल्य ।

<style>
div {
  font-size: 16px;
}
span {
  font-size: 75%;
}
</style>
<div><span>this font size is 12px!</span></div>

इट्स दैट ईजी।

क्या होगा अगर div एक रिश्तेदार फ़ॉन्ट-आकार, जैसे ems, या इससे भी बदतर, एक और प्रतिशत घोषित करता है ?? ऊपर "गणना" देखें । सापेक्ष इकाई जो भी निरपेक्ष इकाई में परिवर्तित हो जाती है।

केवल एक ही प्रश्न शेष है कि क्या होता है जब आप मूल तत्व पर प्रतिशत मान का उपयोग करते हैं, जिसका कोई अभिभावक नहीं है:

html {
  font-size: 62.5%; /* 62.5% of what? */
}

उस मामले में, देखें इस प्रश्न का "डुप्लिकेट" । TLDR: रूट एलिमेंट पर प्रतिशत ब्राउज़र डिफ़ॉल्ट फॉन्ट साइज़ को संदर्भित करता है, जो प्रति उपयोगकर्ता अलग हो सकता है।

संदर्भ:

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