我有两个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>
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;
}
现场例子
https://jsfiddle.net/djjvqtop/1/
这种情况发生在所有浏览器中。有办法防止这种情况吗?
答案 0 :(得分:2)
问题是由添加overflow: hidden
更改#demo
的高度这一事实引起的。最初它是0,因为它只包含float元素。类.collapsing
添加overflow: hidden
,这会使其展开以包含浮点数。因此,#demo.collapsing
的高度为<aside>
,而<main>
元素位于其下方且不在视线范围内。
一种解决方案是让#demo
也向左浮动。