Javascript 为什么';t getComputedStyle是否考虑到保证金崩溃?

Javascript 为什么';t getComputedStyle是否考虑到保证金崩溃?,javascript,css,cssom,Javascript,Css,Cssom,关于浏览器Javascript,应该使用window.getComputedStyle()方法给出应用于元素的CSS属性的最终使用值。根据该报告,这意味着“在完成所有计算之后” 然而,“所有的计算”似乎都不包括利润崩溃。在Firefox和Chrome(至少)中,指令getComputedStyle().marginBottom在计算任何边距折叠之前返回计算值 例如,考虑以下元素: <div style="margin: 10px 0 15px 0"></div> 但是,

关于浏览器Javascript,应该使用
window.getComputedStyle()
方法给出应用于元素的CSS属性的最终使用值。根据该报告,这意味着“在完成所有计算之后”

然而,“所有的计算”似乎都不包括利润崩溃。在Firefox和Chrome(至少)中,指令
getComputedStyle().marginBottom
在计算任何边距折叠之前返回计算值

例如,考虑以下元素:

<div style="margin: 10px 0 15px 0"></div>
但是,由于边距折叠,布局在边界客户端矩形之前显示10px的边距,在边界客户端矩形之后显示5px的边距,即
max(0,marginBottom-marginTop)

为什么
getComputedStyle().marginBottom
不直接返回5px,即“执行所有计算后”实际使用的值,而不是指定的15px?这是W3C推荐的行为吗?(我在w3.org文档中没有看到这方面的任何内容。)


这是一个bug还是一个特性?

我没有看到您的所有代码,但我认为函数名实际上是“getComputedStyle”,带有一个“u”

打字错误?有那么简单吗?包括我在内,你不会是第一个


希望这能有所帮助。

是的,那是个打字错误。谢谢,但问题仍然存在;-)
getComputedStyle().marginTop → 10px
getComputedStyle().marginBottom → 15px
getBoundingClientRect().top → {top of margin box} + marginTop
getBoundingClientRect().bottom → idem top