2012-07-16 16 views
5

क्या कंटेनर आकार के प्रतिशत में फ़ॉन्ट आकार सेट करना संभव है? मेरे पास ऐसी वस्तुओं की एक सूची है जिसमें एक छवि, एक शीर्षलेख और विवरण है। छवि स्वचालित रूप से आकार बदलती है क्योंकि उपयोगकर्ता विंडो का आकार बदलता है। मैं हेडर फ़ॉन्ट वही करना चाहता हूं।सीएसएस, सापेक्ष फ़ॉन्ट आकार

संपादित करें: जावास्क्रिप्ट/JQuery ठीक है।

+0

कंटेनर आकार से, क्या आपका मतलब पैडिंग और पैडिंग, या पैडिंग, सीमा और मार्जिन समेत पैडिंग सहित है? –

+1

इसके अलावा, आईएमओ, मैं आपको व्यूपोर्ट/विंडो आकार के आधार पर फ़ॉन्ट आकार का आकार बदलने का हतोत्साहित करता हूं। यह पठनीयता को मुख्य रूप से रोकता है। –

+0

कंटेनर, खिड़की, पैडिंग, जो भी हो। मैं चाहता हूं कि यह किसी और चीज के सापेक्ष स्वचालित रूप से आकार बदलने में सक्षम हो, जो खिड़की, और इस प्रकार लेआउट का आकार बदलता है ... –

उत्तर

5

बस टायलर की जवाब पर विस्तार करने के लिए, यह क्या जावास्क्रिप्ट के लिए है है, हालांकि मैं बालक सुनिश्चित करें कि आप CSS3 के व्यूपोर्ट का उपयोग कर एक ही उपलब्धि हासिल कर सकते हैं, तो आप jQuery का उपयोग कर बंद बेहतर होगा (यह हमेशा तो चिंता करने की कोई जरूरत नहीं है जो Google पर होस्ट आमतौर पर सबसे ब्राउज़र की की कैश में और है :)

आप इस तरह एक सीएसएस है:

+०१२३५१६४१०
#body #mytext { 
    font-size: 50%; 
} 

आप गतिशील रूप से इस तरह jQuery में आकार बदल सकते हैं:

$(window).resize(function(){ 
    $('#body #mytext').css('font-size',($(window).width()*0.5)+'px'); 
}); 
+8

बस एक एफवाईआई, आपको यह निर्दिष्ट करने की आवश्यकता नहीं है कि '# mytext'' # body' का वंशज है जब तक कि आप विशिष्टता मान को बढ़ाने की कोशिश नहीं कर रहे हैं (यदि आप आईडी का उपयोग कर रहे हैं तो वास्तव में गलत तरीका है) । –

+0

यह परिदृश्य पर निर्भर करता है, इस तरह से सीएसएस का उपयोग करने में कुछ भी गलत नहीं है। हालांकि, यह सिर्फ एक डेमो है ... –

+3

वाक्यविन्यास के रूप में गलत, नहीं। अर्थशास्त्र में गलत, हां। –

3

नहीं, यह केवल जावास्क्रिप्ट में ही किया जा सकता है।

+0

जैसा कि टायलर ने कहा था, फोंट की गणना ब्राउज़र के वर्तमान सेट फोंटिज़ के संबंध में की जाती है , यदि आप गतिशील फ़ॉन्ट आकार जैसे "em" या "%" मानों का उपयोग करते हैं। यदि आप टैग की ऊंचाई/चौड़ाई – r3bel

-1

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

http://css-tricks.com/resolution-specific-stylesheets/

1

jQuery एक विकल्प है है?

सुपर आसान अगर यह होता है: fiddle

<div id="container"> 
    <p>HELLO WORLD!</p> 
</div>​ 


<script> 
$(document).ready(function() { 
    var sizeMe = ($('#container').height()/100) * 90; /* 90% of container */ 
    $('p').css('font-size', sizeMe); 
}; 
</script> 
+1

के आधार पर आकार प्राप्त करना चाहते हैं तो आपको जावास्क्रिप्ट के साथ फ़ॉन्ट आकार की गणना करनी होगी। सैद्धांतिक रूप से बदलने की आवश्यकता वाले कई अन्य गुण हैं (यानी टेक्स्ट इंडेंट, लाइन-ऊंचाई इत्यादि)। –

+0

लेकिन फिर, ओपी ने इसके बारे में नहीं पूछा। :) –

+0

यह मेरे लिए काम नहीं करता है, यहां तक ​​कि jsfiddle में भी। ? –

11

CSS3 में, वहाँ vw इकाई है, जो व्यूपोर्ट चौड़ाई के 1/100 के लिए खड़ा है। उदाहरण के लिए,

h1 { font-size: 5.5vw; } 

हेडिंग फ़ॉन्ट आकार को व्यूपोर्ट चौड़ाई के 5.5% पर सेट करता है।

हालांकि, यह अभी तक आईई 9 (मानक मोड) पर काम करता प्रतीत होता है। इसके अलावा, जब ब्राउज़र विंडो का आकार बदलता है, तो केवल आईई 9 यूनिट के मान को गतिशील रूप से परिवर्तित नहीं करता है, केवल रीलोड पर।

+5

यह कंटेनर के आकार के सापेक्ष नहीं है। –

+0

यह वही प्रभाव देता है, लेकिन कंटेनर के आकार में कोई भी परिवर्तन चाहे वह जावास्क्रिप्ट द्वारा हो या सीएसएस को बदलकर, यह बिल्कुल सही काम नहीं करेगा। कंटेनर के आकार को बदलने पर इसे अपडेट करना याद रखना होगा। –

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