3

この例をhttp://jsfiddle.net/drulia/34TKp/にしました

基本的にborderborder-boxjs scrollHeight と組み合わせるたびに、1px 大きくなると思われます。例でわかるように、親要素には高さが設定されていませんoverflow:auto;。何らかの理由でスクロールバーが表示されることを視覚的に示すためだけです。

border-topまたはをコメントしようとすると、スクロールバーが消えてと等しくなることにbox-sizing気付くでしょう。offsetHeightscrollheight

それは本当に私を夢中にさせており、これまでのところ、この問題の原因となっているcssプロパティを見つけてうれしく思いますが、誰かがなぜ物事が起こるのかを知っているのではないかと興味がありますか? これは FF、Chrome、および IE10 で発生します。たとえば、FF の接頭辞付きのボックス サイズを含めませんでした。

アップデート

明確にするために-との組み合わせがこの問題box-sizingを引き起こす理由を尋ねていますか? border私は何か間違ったことをしているのですか、それともバグがあるのですか、それともこれは予想される動作であると思われますが、これは非常に疑わしいです。

オーバーフロー プロパティの変更、境界線の削除などの簡単な修正については知っています。

4

1 に答える 1

6

変化する:

.jspPane {
    position: absolute;
    overflow: auto;
}

に:

.jspPane {
    position: absolute;
    overflow: hidden;
}

http://jsfiddle.net/34TKp/2/

または、css をそのままにして、高さ属性を に追加することもできます.jspane。高さを設定したくない場合は、追加できdisplay:table;ます.jspane

アップデート

更新/編集を読むだけです。ボーダー属性が高さ/幅に追加されるためです。あなたの場合、あなたは持って border-top: 1px solid #e0e0e0;.itemます。35px の高さで設定しましたが、border-top はこれに 1px を追加します。高さを 34px から 35px に変更すると、これで修正されます。こちらをご覧ください:http://jsfiddle.net/34TKp/3/

于 2013-03-03T19:26:33.347 に答える