border-boxでbottomの算出が正しくない

症状

ボーダー領域やパディング領域の幅が0より大きいボックスのbox-sizingプロパティの値をborder-boxに設定した場合、bottomプロパティの振る舞いが正しくない。ボックスの下辺の位置が、本来あるべき位置よりも内側に置かれてしまう。

例示

<style type="text/css">
.pr {
  position: relative;
  width: 75px;
  height: 75px;
  background: yellow;
}
.ch {
  position: absolute;
  left: 0;  right: 0;
  top: 0;   bottom: 0;
  margin: 0;
  padding: 5px;
  border: 5px solid blue;
  background: aqua;
}
</style>

<div class="pr">
<div class="ch" style="box-sizing:content-box;">C</div>
</div>
<hr>
<div class="pr">
<div class="ch" style="box-sizing:border-box;">B</div>
</div>
C

B

box-sizingプロパティ(初期値はcontent-box)にそれぞれの値を指定した場合の比較です。すべての場合で親要素の背景(黄色の領域)は見えないはずです。

スクリーンショット

Op7.2Opera7.23標準モード

修正状況

  • Opera7.23で不具合の発生を確認しました。

関連記事

スポンサーリンク

幅や高さを指定した要素ではボックスサイズの算出時にフロートを除外しない

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る