【发布时间】:2021-03-19 08:10:44
【问题描述】:
在 CSS 中使用 box-sizing: border-box 时,我假设元素的总宽度将在其“宽度”值中定义。所以如果我说一个分割的宽度是20px,右边框是10px,我最终会得到一个占据20px空间的盒子,其中一半是右边框。将它推到我将宽度设置为 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>
我的问题是这是否是预期的行为。对我来说似乎不一致。我想让一个盒子消失,只控制宽度/高度。
【问题讨论】:
-
你用的是什么浏览器?并非所有浏览器都直接支持 box-sizing。有些有自己专有的盒子大小,例如
-moz-box-sizing和-webkit-box-sizing。如果您想让某些东西消失,请考虑使用display:none;或visibility:hidden; -
我也可以用锤子打碎鸡蛋……但我尽量不这样做:)开玩笑,我真的需要元素像那样消失……想想缝。 ..
-
您的意思是某种动画,您会慢慢将宽度减小到零?不完全确定你所说的狭缝是什么意思。如果您可以详细说明您正在尝试实现的目标,那么可能还有另一个更合适的解决方案。与大多数事情一样,有很多方法可以做到这一点。也许羊角锤是一个糟糕的选择,但也许撕裂锤就在你的小巷里。
标签: css border-box