.width () 4 पिक्सल बहुत अधिक देता है

मेरे पास एक div है:

<div class="frame" id="layer1"> ... </div>

स्टाइल के साथ:

.frame {
    position: absolute;
    width: 380px;
    height: 280px;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: 0;
}
#layer1  { background-color: red; color: #fff; }

लेकिन ये मेरे परिणाम हैं:

$(".frame").filter(":first").width();//384
$(".frame").filter(":first").outerWidth(); //384
$(".frame").filter(":first").innerWidth(); //384

मैं उन्हें समझता हूं क्योंकि मेरे पैडिंग और मार्जिन 0 हैं, लेकिन यह डिफ़ॉल्ट 4px कहां से आता है?

2
जोड़ा संपादित
विचारों: 1
फायरबग/क्रोम तत्व निरीक्षक द्वारा दी गई चौड़ाई क्या है?
जोड़ा लेखक Salman A, स्रोत
इसे आज़माएं: बॉक्स-आकार: सीमा-बॉक्स यह सुनिश्चित करने के लिए कि यह पैडिंग के साथ भी 380 पीएक्स है।
जोड़ा लेखक Derek 朕會功夫, स्रोत
यह सब मेरी गलती है!! सहायता के लिए धनयवाद। मेरे पास समीकरण के लिए 4 के अलावा कुछ और चल रहा था!
जोड़ा लेखक JeroenEijkhof, स्रोत
मुझे क्रोम, फ़ायरफ़ॉक्स और आईई में 380 मिलते हैं: jsbin.com/isehud यह भी ध्यान दें कि करने की कोई आवश्यकता नहीं है .filter (": first") , jQuery getters हमेशा सेट में पहले तत्व से मिलता है। (और यदि आपने किया इसे करने की आवश्यकता है, .first() के बजाय .filter (": first") शायद एक बेहतर तरीका है जाने के लिए, या .eq (0) ।)
जोड़ा लेखक T.J. Crowder, स्रोत
यदि सभी .frame तत्वों को बिल्कुल 380 पिक्सेल होने की आवश्यकता है और आप सीएसएस अन्य स्टाइल नियमों के साथ संघर्ष कर रहे हैं, तो नियम को width: 380px! महत्वपूर्ण में बदलें;
जोड़ा लेखक nbrooks, स्रोत
मेरे लिए यह jsfiddle और क्रोम में 380 लौट रहा है। आप किस ब्राउजर का उपयोग कर रहे हैं और क्या यह घटना उस/उन ब्राउज़र/के लिए अद्वितीय है या यह अन्य ब्राउज़रों में भी दिखाई देती है?
जोड़ा लेखक jakee, स्रोत

1 उत्तर

यह हल हो गया, आपके जवाबों के लिए धन्यवाद - इससे मदद मिली!

समीकरण में कुछ और करने के अलावा कुछ और किया था। बेवकूफ महसूस भी यह पूछ रहा है लेकिन आपके उत्तरों और सवालों ने मुझे इसके नीचे पहुंचने में मदद की! मुझे पूरी लिपि पोस्ट करनी चाहिए थी:

var layers = $(".frame");
console.log(layers);

var totalWidth = layers.size() + layers.filter(":first").innerWidth();
console.log(totalWidth);

जैसा कि आप देखते हैं कि समस्या layers.size() + में निहित है, यह गुणा होना चाहिए और अतिरिक्त नहीं होना चाहिए और मुझे इसे पहले देखना चाहिए था।

0
जोड़ा
"निष्कर्ष के लिए प्रश्न में संपादन पढ़ें।" यह अपने स्वयं के प्रश्न का उत्तर दें । ऐसा करने का सही तरीका प्रश्न को प्रश्न के रूप में छोड़ना है, और उत्तर को उत्तर में पोस्ट करना है। या इस मामले में, क्योंकि यह सिर्फ एक गलती थी, आप अपने प्रश्न को ध्वजांकित कर सकते हैं ताकि मॉडरेटर को पूरी तरह से इसे हटाने के लिए कहा जा सके।
जोड़ा लेखक T.J. Crowder, स्रोत