3

これが、http://jsfiddle.net/YNKws/です。

<div id="div1" style="padding: 2px; overflow: auto;">
  <div style="height:30px;">lalala</div>
  <div style="height:30px;">lalala</div>
</div>

var d = $("#div1");
for (var i = 0; i < 5; i++) {
  console.log(d.height(),d[0].scrollHeight);
  d.height(d.height() - 1);
}

パディングとoverflow:autoを備えたdivがあります。そしてFirefoxでは、divのscrollHeight値の奇妙な振る舞いがあります。divの高さを元の高さよりも小さく設定すると、スクロールバーがすぐに表示され、scrollHeightの値は同じままであると予想されるのは当然です。Chromeはこれらの表現に適していますが、Firefoxには適していません。最後のものはスクロールバーを描画せず、元の高さの偏差がdivのパディングよりも小さい場合、下部のパディングとscrollHeightを減らします。

それはバグですか、この「バグ」の修正はありますか?

4

1 に答える 1

2

Firefoxの動作は、CSS仕様で要求されている動作です。オーバーフローのあるものをパディングしても、それ自体でオーバーフローが発生することはありません。

于 2013-02-15T18:49:03.277 に答える