ब्राउज़र जावास्क्रिप्ट के बारे में, window.getComputedStyle()
विधि किसी तत्व पर लागू सीएसएस गुणों के अंतिम उपयोग किए गए मान देना है। MDN documentation के अनुसार, इसका अर्थ है "सभी गणनाओं के बाद"।क्यों नहीं मिलता है कम्प्यूटेड स्टाइल खाता मार्जिन ढहने में ध्यान देता है?
हालांकि, ऐसा लगता है कि "सभी गणनाओं" में मार्जिन ढहने शामिल नहीं है। फ़ायरफ़ॉक्स और क्रोम (कम से कम) में, निर्देश getComptedStyle().marginBottom
गणना किए गए मान को किसी मार्जिन ढहने की गणना करने से पहले देता है। क्योंकि (मोटे तौर पर) अपनी सामग्री ऊंचाई शून्य (सीएफ the W3C CSS2 Recommendation) है
<div style="margin: 10px 0 15px 0"></div>
इसके ऊपर और नीचे मार्जिन ढह किया जाएगा:
उदाहरण के लिए निम्नलिखित तत्व पर विचार करें। , कारण मार्जिन गिर करने के लिए
getComputedStyle().marginTop → 10px
getComputedStyle().marginBottom → 15px
getBoundingClientRect().top → {top of margin box} + marginTop
getBoundingClientRect().bottom → idem top
लेकिन, लेआउट बाउंडिंग ग्राहक आयत से पहले 10px के अंतर, और बाद 5px के अंतर से, यानी max(0, marginBottom - marginTop)
पता चलता है: CSSOM तरीकों इन मूल्यों को वापस आ जाएगी।
getComputedStyle().marginBottom
सीधे 5px क्यों नहीं लौटाता है, निर्दिष्ट 15px के बजाय वास्तविक गणना मान "सभी गणनाओं के बाद" किया जाता है? क्या यह एक डब्ल्यू 3 सी-अनुशंसित व्यवहार है? (मैंने w3.org दस्तावेज़ों में इसके बारे में कुछ भी नहीं देखा है।)
क्या यह एक बग या सुविधा है?
हां वह एक टाइपो था। धन्यवाद –
Merci, @Martin। – Parapluie