【发布时间】:2017-12-31 02:11:06
【问题描述】:
我有两个并排的 div。单击按钮,左侧的 div 向左折叠,只留下右侧的 div。由于右侧的 div 是 width: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/
这发生在所有浏览器中。有没有办法防止这种情况?
【问题讨论】:
-
问题是虽然元素的高度为
100vh,但它实际上并没有占据它,因为它被设置为display: inline。当您滚动时,它不会“消失”,而是会自行移动 下方 以适应高度。如何真正修复...遗憾的是我不确定。隐藏溢出不起作用,更改显示不起作用等。相当有趣的一个;赞成!
标签: html css bootstrap-4