2012-03-06 8 views
61

में कोई ऊंचाई सेट के साथ div की ऊंचाई प्राप्त करें यदि तत्व का उपयोग करने के लिए कोई सीएसएस ऊंचाई नियम सेट नहीं है, तो तत्व की ऊंचाई प्राप्त करने का कोई तरीका है Ihe() jQuery विधि क्योंकि इसे एक सीएसएस नियम की आवश्यकता है पहले सेट करें? ऊंचाई पाने के लिए कोई और तरीका है?सीएसएस

+2

आपको क्या लगता है कि 'ऊंचाई()' को एक सीएसएस नियम होना चाहिए? –

+0

'ऊंचाई()' तत्वों की गणना की ऊंचाई प्राप्त होगी ... – elclanrs

+1

लगता है जैसे आप किसी छिपे हुए तत्व के अंदर कुछ की ऊंचाई प्राप्त करने की कोशिश कर रहे हैं? या तत्व स्वयं छिपा हुआ है। कोई नहीं कर सकता! – charlietfl

उत्तर

161

jQuery .height आपको तत्व की ऊंचाई वापस कर देगा। इसे सीएसएस परिभाषा की आवश्यकता नहीं है क्योंकि यह गणना की ऊंचाई निर्धारित करता है।

DEMO

आप .height(), .innerHeight() या outerHeight() आपको क्या चाहिए के आधार पर उपयोग कर सकते हैं।

enter image description here

.height() - रिटर्न तत्व की ऊंचाई शामिल नहीं पैडिंग, बॉर्डर और मार्जिन।

.innerHeight() - तत्व की ऊंचाई में पैडिंग शामिल है लेकिन सीमा और मार्जिन को शामिल नहीं करता है।

.outerHeight() - सीमा सहित div की ऊंचाई देता है लेकिन मार्जिन को छोड़ देता है।

.outerHeight(true) - मार्जिन सहित div की ऊंचाई देता है।

लाइव डेमो के लिए कोड स्निपेट नीचे देखें। :)

$(function() { 
 
    var $heightTest = $('#heightTest'); 
 
    $heightTest.html('Div style set as "height: 180px; padding: 10px; margin: 10px; border: 2px solid blue;"') 
 
    .append('<p>Height (.height() returns) : ' + $heightTest.height() + ' [Just Height]</p>') 
 
    .append('<p>Inner Height (.innerHeight() returns): ' + $heightTest.innerHeight() + ' [Height + Padding (without border)]</p>') 
 
    .append('<p>Outer Height (.outerHeight() returns): ' + $heightTest.outerHeight() + ' [Height + Padding + Border]</p>') 
 
    .append('<p>Outer Height (.outerHeight(true) returns): ' + $heightTest.outerHeight(true) + ' [Height + Padding + Border + Margin]</p>') 
 
});
div { font-size: 0.9em; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="heightTest" style="height: 150px; padding: 10px; margin: 10px; border: 2px solid blue; overflow: hidden; "> 
 
</div>

32

बस एक नोट मामले दूसरों में एक ही समस्या है।

मुझे एक ही समस्या थी और एक अलग जवाब मिला। मैंने पाया कि एक div ऊंचाई है कि इसकी सामग्री से निर्धारित होता है की ऊंचाई हो रही window.load, या window.scroll पर शुरू किया जा करने की जरूरत है नहीं document.ready अन्यथा मैं अजीब ऊंचाइयों/छोटे ऊंचाइयों, यानी पहले मिल छवियों को लोड किया गया है। मैंने बाहरी हाइट() का भी उपयोग किया।

var currentHeight = 0; 
$(window).load(function() { 
    //get the natural page height -set it in variable above. 

    currentHeight = $('#js_content_container').outerHeight(); 

    console.log("set current height on load = " + currentHeight) 
    console.log("content height function (should be 374) = " + contentHeight()); 

}); 
+0

शायद आपको विषम ऊंचाई मिल रही है क्योंकि आपके द्वारा उपयोग/मुद्रित करने के बाद ऊंचाई को बदलने वाले अधिक निर्देश हैं। आपकी स्क्रिप्ट – Gjaa

+0

के अंत में ऊंचाई के लिए पूछने की अनुशंसा की जाती है मेरे लिए '$ (विंडो) .scroll (...) ' –

6

यह भी सुनिश्चित करें div वर्तमान में डोम और दिखाई के साथ जोड़ दिया गया है।

+13

काम करता है कृपया ध्यान दें कि यह मुझे उत्तर से टिप्पणी के रूप में अधिक उपयुक्त हो सकता है। – kkuilla

+3

वह टिप्पणी विशेषाधिकार नहीं था, दोस्तों को आराम करो। – StackOverflowed

+1

मैं इसे एक महत्वपूर्ण जानकारी मानता हूं, क्योंकि यदि कोई अन्य तत्व डीओएम से शुरू नहीं होता है तो अन्य कोई भी जवाब काम नहीं करेगा। – Guido

5

jQuery में ऐसा कर सकते हैं। सभी विकल्पों का प्रयास करें .height(), .innerHeight() या .outerHeight()

$('document').ready(function() { 
    $('#right_div').css({'height': $('#left_div').innerHeight()}); 
}); 

उदाहरण स्क्रीनशॉट

enter image description here

आशा इस मदद करता है। धन्यवाद!!