2009-04-11 29 views
6

क्या ब्राउज़र फ़ॉन्ट आकार का पता लगाना संभव है? जब उपयोगकर्ता मेनू चयन से फ़ॉन्ट आकार बदलता है तो नया फ़ॉन्ट आकार भी समर्पित करना संभव है? सभी की मदद के लिए बहुत धन्यवाद। सबसे अच्छा संबंध है।ब्राउज़र फ़ॉन्ट आकार का पता लगाएं

+0

[jQuery प्लगइन मदद कर सकते हैं] (http://stackoverflow.com/questions/10463518/converting-em-to-px-in-javascript-and-getting-default-font-size/ 16 9 24637 # 16 9 24637) – SpYk3HH

उत्तर

2

संक्षिप्त उत्तर नहीं है। हालांकि, मुझे संदेह है कि आप उपयोगकर्ता के फ़ॉन्ट आकार के आधार पर अलग-अलग तत्वों पर विभिन्न आकार डालना चाहते हैं। यदि ऐसा है, तो आप "em" में सीएसएस नियम निर्दिष्ट करने पर एक नज़र डालना चाहते हैं, जिसे वर्तमान फ़ॉन्ट आकार के सापेक्ष माना जाता है।

+0

हाय स्कोरपैन, मुझे आपके द्वारा सकारात्मक जवाब मिला। क्या आप अपना विचार समझाएंगे? आपके पास कोई उदाहरण है? एक बार फिर धन्यवाद। सादर। –

+0

मैं दूर था, इसलिए मैं समय पर जवाब नहीं दे सका। हालांकि पिक्सेल डेवलपर ने एक आदर्श उदाहरण के साथ जवाब दिया है! –

8

अच्छा, यह संभव है, लेकिन क्रिस्टल बॉल पर बैठे मेरे रेवेन ने मुझे आपको यह बताने के लिए नहीं बताया कि आप क्या हासिल करना चाहते हैं। सबसे अधिक संभावना है कि आप एक वेबपृष्ठ को अच्छे दिखने के लिए चाहते हैं चाहे फॉन्ट-साइज क्या हो। इसके लिए, मैं CSS units em, ex etc की अनुशंसा करता हूं।

+2

+1 मुझे पूर्व के बारे में कोई जानकारी नहीं थी। – Calvin

7

क्या ब्राउज़र फ़ॉन्ट आकार का पता लगाना संभव है?

तरह, लेकिन यह शायद ही कभी एक अच्छा विचार है। < शरीर मान लिया जाये> कोई फ़ॉन्ट आकार सेट है और वहाँ कोई हस्तक्षेप नियम ('शरीर div' की तरह) हैं:

var measure= document.createElement('div'); 
measure.style.height= '10em'; 
document.body.appendChild(measure); 
var size= measure.offsetHeight/10; 
document.body.removeChild(measure); 

आप 1em का पिक्सेल में आकार देता है।

उपयोगकर्ता के चयन से फ़ॉन्ट आकार बदलने पर भी नए फ़ॉन्ट आकार को समर्पित करना संभव है?

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

+1

बस सोचा कि मैं इंगित करता हूं कि यह केवल तभी काम करता है जब पृष्ठ पर मूल तत्व ('' तत्व) का 100% का 'फ़ॉन्ट-आकार' है। यदि आप अपने मूल तत्व के फ़ॉन्ट आकार को जानते हैं, तो आप @ bobince के परीक्षण के अंत में 'आकार = आकार * जो भी MyCssDefinesAsBaseSize/100' डालकर उपयोगकर्ता के फ़ॉन्ट आकार की गणना कर सकते हैं। –

3

जहां तक ​​मुझे पता है कि पता लगाने का कोई तरीका नहीं है। आप बस मान लें कि डिफ़ॉल्ट आकार 16 पिक्सेल है जो मानक है।

सबसे अच्छा अभ्यास सभी फ़ॉन्ट आकारों को ईएमएस में सेट करना है जो मूल फ़ॉन्ट आकार के अनुसार स्केल करते हैं।

अधिकांश लोग बेस फ़ॉन्ट को 10 पिक्सल पर सेट करते हैं जो ईएमएस के साथ काम करना आसान बनाता है।

उदाहरण

16px = 1em

p { 
    font-size:2em; 
} 

कि समान हैं 32px


10px = 0.625em

body { 
    font-size:0.625em; 
} 

p { 
    font-size:2em; 
} 

यह 20px के बराबर होगा;

मुझे आशा है कि इससे मदद मिलेगी।

0

टेक्स्ट आकार परिवर्तनों की निगरानी के लिए मेरी प्रेरणा गतिशील रूप से ऊंचाई (या चौड़ाई) तत्वों को बदलने के लिए है ताकि पूरे पृष्ठ को ब्राउज़र विंडो स्क्रॉल बार की आवश्यकता न हो। आम तौर पर जब आप ऐसा करते हैं तो आप आकार बदलने की घटना का जवाब देते हैं लेकिन फ़ॉन्ट आकार में बदलाव आपकी गणना को भी प्रभावित कर सकते हैं।मुझे इतना परवाह नहीं है कि वास्तविक फ़ॉन्ट आकार क्या है, मुझे यह जानने की जरूरत है कि यह कब बदलता है।

यहां कुछ jQuery कोड हैं जिनका मैं उपयोग करता हूं। यह bobince द्वारा सुझाए गए समाधान के समान है। मैं एक आकार बदलने समारोह है कि एक div आदि

$(window).resize(resize); // update when user resizes the window. 

$("body").append("<p id='textSizeReference' style='display:none;padding:0'>T</p>"); 
var refTextHeight = $("#textSizeReference").height(); 
setInterval(function() { 
    var h = $("#textSizeReference").height(); 
    if (h != refTextHeight) { 
     refTextHeight = h; 
     resize(); // update when user changes text size 
    } 
}, 500); 

की ऊंचाई अद्यतन करेगा यह है कि परिवर्तन के लिए चुनाव location.hash में आप पाठ का आकार बदलने के लिए एक ही मतदान समारोह का उपयोग कर सकते एक ajax ऐप्स है, तो है। फ़ायरफ़ॉक्स/ओपेरा में

document.documentElement.currentStyle [ "FontFamily"]

:

वहाँ

0

यहाँ कुछ मैंने पाया कि IE में दस्तावेज़ का वर्तमान अक्षरों परिवार का पता लगाने के लिए अच्छी तरह से काम करता है getComputedStyle नामक एक विधि है जिसे किसी विशेष तत्व के लिए सीएसएस शैली को वापस करने के लिए माना जाता है, लेकिन मुझे अभी तक पूरे दस्तावेज़ पर वापस आने के लिए एक तरीका नहीं मिला है।

उम्मीद है कि यह कुछ हद तक मदद करता है!

+0

जिस तरह से आप इसे पूरे दस्तावेज़ पर वापस लाने के लिए प्राप्त करते हैं, वह 'getComputedStyle (document.documentElement) 'कर रहा है। 'GetComputedStyle (दस्तावेज़)' करना कभी काम नहीं करेगा क्योंकि शैली विशेषता HTMLElement इंटरफ़ेस का हिस्सा है। और, दस्तावेज़ HTMLElement इंटरफ़ेस से गुणों का वारिस नहीं करता है: यह केवल एक नोड है, न कि स्थानिक तत्व। इस प्रकार, दस्तावेज़ नोड में कोई शैली नहीं है, और इसलिए आप इसे 'कॉम्प्यूटेड स्टाइल' नहीं प्राप्त कर सकते हैं। –

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