CSSで使用box-sizing: border-box
する場合、要素の合計幅はその「幅」の値で定義されると想定しています。したがって、分割の幅が20ピクセルで、右の境界線が10ピクセルであるとすると、20ピクセルのスペースを占めるボックスになり、その半分が右の境界線になります。ここのように、幅を10pxに設定し、右の境界線も設定するポイントまでプッシュします。
#box {
overflow: hidden;
width: 10px;
box-sizing: border-box;
height: 50px;
background: black;
border-right: 10px solid red;
}
<div id="box"></div>
ボックスは赤い境界線のみで構成されます。幅を0pxに設定するとどうなりますか?全体が消えると思っていましたが、結果は上記とまったく同じです。
#box-1 {
overflow: hidden;
width: 10px;
box-sizing: border-box;
height: 50px;
margin-bottom: 10px;
background: black;
border-right: 10px solid red;
}
#box-2 {
overflow: hidden;
width: 0px;
box-sizing: border-box;
height: 50px;
background: black;
border-right: 10px solid red;
}
<div id="box-1"></div>
<div id="box-2"></div>
私の質問は、これが期待される動作であるかどうかです。私には矛盾しているようです。幅/高さだけを操作してボックスを消したいのですが。