इसके लिए में jQuery API ने कहा:jQuery: ऊंचाई() एक सीमा बॉक्स
ध्यान दें कि .height() हमेशा बॉक्स आकार सीएसएस के मूल्य की सामग्री ऊंचाई वापस आ जाएगी, भले ही संपत्ति। jQuery 1.8 के रूप में, यह सीएसएस ऊंचाई प्लस बॉक्स आकार देने वाली संपत्ति और को पुनर्प्राप्त करने की आवश्यकता हो सकती है, तो प्रत्येक तत्व पर किसी भी संभावित सीमा और पैडिंग को घटाकर तत्व में बॉक्स आकार का होता है: सीमा-बॉक्स। इस जुर्माना से बचने के लिए, .height() के बजाय .css ("ऊंचाई") का उपयोग करें।
मैं निम्न उदाहरण
<div id='wrapper' class='boxA'>
<div class='boxB'>
Test
</div>
</div>
की कोशिश की सीएसएस
.boxA{
padding: 20px;
background-color: yellow;
box-sizing: border-box;
margin: 50px;
}
.boxB{
height: 50px;
background-color: red;
}
साथ jQuery एपीआई मुझे यकीन है कि
$('#wrapper').height($('#wrapper').height());
boxA की ऊंचाई सेट होता था के अनुसार 50px तक (क्योंकि सामग्री-ऊंचाई 50px है) लेकिन मैं foun डी कि ऊंचाई 90px पर सेट किया गया था। लेकिन अगर मैं का उपयोग
$('#wrapper').css('height', $('#wrapper').height()+"px");
boxA की ऊंचाई 50px हो जाता है और इसलिए सिकुड़ता है। पहली विधि 50px ऊंचाई का उत्पादन क्यों नहीं कर रही है?
इसके अलावा, आदेश
$('#wrapper').height($('#wrapper').css('height'));
130px लेकिन $('#wrapper').css('height')
रिटर्न 90. यहाँ क्या हुआ के लिए boxA की ऊंचाई सेट होगा?
आप इन उदाहरणों को jFiddle में पा सकते हैं।
_ "... jQuery 1.8 के रूप में, इसे सीएसएस ऊंचाई और बॉक्स आकार देने वाली संपत्ति को पुनः प्राप्त करने की आवश्यकता हो सकती है और फिर ** प्रत्येक तत्व पर ** किसी संभावित 'सीमा' और 'पैडिंग' को घटाना आवश्यक है जब तत्व में बॉक्स- आकार: सीमा-रेखा। "_ – Vucko
@ वोको मैंने अब पूरी टिप्पणी जोड़ दी। यह अभी भी मेरे पद में वर्णित अजीब व्यवहार की व्याख्या नहीं करता है। – Adam