ken*_*orr 5 css html5 css3 bootstrap-4
我有两个divs彼此相邻.单击一个按钮,左边的div向左折叠,只留下右边的div.由于右边的div是宽度:100%;它填充了折叠的左div留下的空间.唯一的问题是,当div崩溃/ CSS过渡正在进行时,正确的div消失片刻,我无法弄清楚原因.
HTML
<div>
<div id="demo" class="collapse show width">
<aside>
</aside>
</div><!--COLLAPSE-->
<main>
<button role="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">
simple horizontal collapsible
</button>
<div class="sample">
Some TExt
</div>
</main>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
html {
height: 100%
}
body {
height: 100%;
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
background: gray;
}
a {
color: #00B7FF;
}
.collapse {
visibility: hidden;
}
.collapse.show {
visibility: visible;
display: block;
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition-property: height, visibility;
transition-property: height, visibility;
-webkit-transition-duration: 0.45s;
transition-duration: 0.45s;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.collapsing.width {
-webkit-transition-property: width, visibility;
transition-property: width, visibility;
width: 0;
height: auto;
}
aside {
height: 100vh;
width: 250px;
background-color: white;
/*border-right:1px solid black;*/
display: block;
float: left;
}
.sample {
margin-top: 100px;
text-align: center;
}
main {
width: 100%;
height: 100vh;
background-color: pink;
display: inline;
}
Run Code Online (Sandbox Code Playgroud)
现场例子
https://jsfiddle.net/djjvqtop/1/
这种情况发生在所有浏览器 有办法防止这种情况吗?
小智 2
该问题是由于添加overflow: hidden改变了 的高度而引起的#demo。最初它是 0,因为它只包含 float 元素。类.collapsing添加overflow: hidden,这使其扩展以包含浮动。#demo.collapsing的高度也是如此<aside>,并且该<main>元素位于其下方且看不见。
一种解决方案是#demo也向左浮动。