पैडिंग और सीमाओं के बिना, आप तत्व की आंतरिक ऊंचाई कैसे प्राप्त करते हैं?तत्व की आंतरिक ऊंचाई प्राप्त करना
कोई jQuery, सिर्फ शुद्ध जे एस, और एक क्रॉस ब्राउज़र समाधान (IE7 शामिल)
पैडिंग और सीमाओं के बिना, आप तत्व की आंतरिक ऊंचाई कैसे प्राप्त करते हैं?तत्व की आंतरिक ऊंचाई प्राप्त करना
कोई jQuery, सिर्फ शुद्ध जे एस, और एक क्रॉस ब्राउज़र समाधान (IE7 शामिल)
var style = window.getComputedStyle(document.getElementById("Example"), null);
style.getPropertyValue("height");
ऊपर संस्करण आधुनिक ब्राउज़रों में काम करेंगे। आईई ब्राउज़र के लिए कृपया currentStyle
देखें। टिप्पणियों से
आपका मतलब है: 'parseInt (style.getPropertyValue (' height ')); ' – vsync
सीएसएस में कोई ऊंचाई नहीं होने पर इंटरनेट एक्सप्लोरर" ऑटो "वापस कर देगा http://jsfiddle.net/Kxsvx/ तो आपके पास नहीं है इसकी ऊंचाई! – Mic
@Mic कौन सा इंटरनेट एक्सप्लोरर? – Fresheyeball
संपादित करें:
http://jsfiddle.net/hTGCE/1/ (थोड़ा अधिक कोड तो उम्मीद)
इंटरनेट आप इस तरह के कार्यों को खोजने में:
function getRectangle(obj) {
var r = { top: 0, left: 0, width: 0, height: 0 };
if(!obj)
return r;
else if(typeof obj == "string")
obj = document.getElementById(obj);
if(typeof obj != "object")
return r;
if(typeof obj.offsetTop != "undefined") {
r.height = parseInt(obj.offsetHeight);
r.width = parseInt(obj.offsetWidth);
r.left = r.top = 0;
while(obj && obj.tagName != "BODY") {
r.top += parseInt(obj.offsetTop);
r.left += parseInt(obj.offsetLeft);
obj = obj.offsetParent;
}
}
return r;
}
अगर आप गद्दी घटाना चाहते हैं/सीमा -विड्थ सीएसएस फ़ाइल में सेट है और शैली विशेषता में गतिशील नहीं है:
var elem = document.getElementById(id);
var borderWidth = 0;
try {
borderWidth = getComputedStyle(elem).getPropertyValue('border-top-width');
} catch(e) {
borderWidth = elem.currentStyle.borderWidth;
}
borderWidth = parseInt(borderWidth.replace("px", ""), 10);
और पैडिंग के साथ ही। तो आप इसकी गणना करते हैं।
आप सभी प्रकार के कचरा कोड पा सकते हैं। मैं इस रहस्य के लिए अंतिम जवाब चाहता हूं, न कि फूला हुआ, धीमा कोड .. लेकिन उत्तर के लिए धन्यवाद :) – vsync
यदि आपके पास एक तत्व के लिए एक सीएसएस विशेषता "ऊंचाई" के बिना गतिशील ऊंचाई है तो "getComputedStyle" के साथ विधि नहीं होगी काम। या मैं गलत हूँ? – Mic
यह काम करता है, बस इसे – vsync
मैं एक ही समस्या थी और पता चला कि वहाँ कोई देशी पार plattform समाधान है, लेकिन समाधान आसान हालांकि
var actual_h = element.offsetHeight;
if(parseInt(element.style.paddingTop.replace('px','')) > 0){
actual_h=actual_h - parseInt(element.style.paddingTop.replace('px',''));
}
if(parseInt(element.style.paddingBottom.replace('px','')) > 0){
actual_h=actual_h - parseInt(element.style.paddingBottom.replace('px',''));
}
सलाह दीजिये कि, एमडीएन [राज्य] (https: //developer.mozilla के रूप में। संगठन/एन-यूएस/डॉक्स/वेब/एपीआई/एचटीएमलेमेंट/स्टाइल # हो रही_स्टाइल_इन्फोर्मेशन), "'स्टाइल' प्रॉपर्टी सामान्य रूप से तत्व की शैली के बारे में सीखने के लिए उपयोगी नहीं है, क्योंकि यह केवल तत्व की इनलाइन में सेट सीएसएस घोषणाओं का प्रतिनिधित्व करती है। शैली 'विशेषता [...] "। – Spooky
बॉक्स-साइजिंग आई 7 में काम नहीं करता है – Chandrakant
क्यों 'सीएसएस में सीमा-box' का उपयोग नहीं है? इस तरह आपको इन चीजों के बारे में चिंता करने की ज़रूरत नहीं है ... फिर आप 'ऑफ़सेट हाइट' का उपयोग कर सकते हैं जो मार्जिन के बिना उचित ऊंचाई वापस कर देगा। – elclanrs
यह एक प्लगइन के लिए एक बहुत ही विशिष्ट सवाल है जो मेरे पास कोई सीएसएस नियंत्रण नहीं है, मुझे बस – vsync
के साथ काम करना है, इसलिए मुझे लगता है कि आप अभी भी 'बॉक्स-साइजिंग: सीमा-बॉक्स' सेट कर सकते हैं, यह आपको कुछ समय और सिरदर्द बचाएगा। – elclanrs