flex-box box-sizing: border-box 不工作
flex-box box-sizing: border-box not working
如标题所说:
.cnr{
display: flex;
height: 100%;
background-color: grey;
position: absolute;
border: 1px red solid;
}
.cnr > div{
box-sizing: border-box;
padding: 1em;
border: 1em solid;
overflow: hidden;
}
.cnr > .closed{
width: 0;
flex-basis: 0;
flex-shrink: 1;
flex-grow: 0;
min-width: 0;
min-height: 0;
}
<div class="cnr">
<div>
open
</div><div class="closed">
closed
</div>
</div>
由于填充和边框,无法使用 width: 0
关闭第二个 div。
做什么?
我不知道我可以添加更多详细信息。这是一个设置为 display: flex
的容器。每个弹性项目都有边框和填充以及一些(文本)内容。总共有2个。然后其中一些将使用宽度关闭:0,并关闭边框和填充。 box-sizing: border-box
已使用。
但是没用。谢谢。
编辑:好的,抱歉没有解释清楚,但是宽度需要动画,这就是为什么在播放动画时需要填充的原因,如果可能的话我不想对填充进行动画处理。
你可以使用 :not
:
.cnr>div{
box-sizing: border-box;
overflow: hidden;
}
.cnr>div:not(.closed) {
border: 1em solid;
padding: 1em;
}
$('.cnr').on('click', function(){
$(this).find('div').toggleClass('closed');
})
.cnr {
display: flex;
height: 100%;
background-color: grey;
position: absolute;
border: 1px red solid;
}
.cnr>div{
box-sizing: border-box;
overflow: hidden;
}
.cnr>div:not(.closed) {
border: 1em solid;
padding: 1em;
}
.cnr>.closed {
width: 0;
flex-basis: 0;
flex-shrink: 1;
flex-grow: 0;
min-width: 0;
min-height: 0;
overflow: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cnr">
<div>
open
</div>
<div class="closed">
closed
</div>
</div>
如标题所说:
.cnr{
display: flex;
height: 100%;
background-color: grey;
position: absolute;
border: 1px red solid;
}
.cnr > div{
box-sizing: border-box;
padding: 1em;
border: 1em solid;
overflow: hidden;
}
.cnr > .closed{
width: 0;
flex-basis: 0;
flex-shrink: 1;
flex-grow: 0;
min-width: 0;
min-height: 0;
}
<div class="cnr">
<div>
open
</div><div class="closed">
closed
</div>
</div>
由于填充和边框,无法使用 width: 0
关闭第二个 div。
做什么?
我不知道我可以添加更多详细信息。这是一个设置为 display: flex
的容器。每个弹性项目都有边框和填充以及一些(文本)内容。总共有2个。然后其中一些将使用宽度关闭:0,并关闭边框和填充。 box-sizing: border-box
已使用。
但是没用。谢谢。
编辑:好的,抱歉没有解释清楚,但是宽度需要动画,这就是为什么在播放动画时需要填充的原因,如果可能的话我不想对填充进行动画处理。
你可以使用 :not
:
.cnr>div{
box-sizing: border-box;
overflow: hidden;
}
.cnr>div:not(.closed) {
border: 1em solid;
padding: 1em;
}
$('.cnr').on('click', function(){
$(this).find('div').toggleClass('closed');
})
.cnr {
display: flex;
height: 100%;
background-color: grey;
position: absolute;
border: 1px red solid;
}
.cnr>div{
box-sizing: border-box;
overflow: hidden;
}
.cnr>div:not(.closed) {
border: 1em solid;
padding: 1em;
}
.cnr>.closed {
width: 0;
flex-basis: 0;
flex-shrink: 1;
flex-grow: 0;
min-width: 0;
min-height: 0;
overflow: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cnr">
<div>
open
</div>
<div class="closed">
closed
</div>
</div>