我做了这个例子http://jsfiddle.net/drulia/34TKp/
基本上每当我border
与border-box
js scrollHeight 结合时,它就会变得比想象的大 1px。正如您在示例中看到的,父元素没有设置高度,它overflow:auto;
只是出于视觉目的显示出于某种原因出现了滚动条。
如果您尝试评论border-top
或box-sizing
,您会注意到滚动条消失并offsetHeight
变为scrollheight
。
这真的让我发疯,到目前为止,我很高兴我找到了导致这个问题的 css 属性,但我很好奇,也许有人知道为什么事情会以这种方式发生?这发生在 FF、Chrome 和 IE10 上,我只是没有在示例中包含 FF 的前缀框大小。
更新
只是为了澄清-我在问为什么box-sizing
与 with的组合border
会导致这个问题?我是做错了什么还是有错误,或者这假设是预期的行为,我非常怀疑。
我确实知道一些简单的修复,比如更改溢出属性、删除边框等。