html - 这个带有垂直弹性框和动态删除元素的 chrome 错误是否有解决方法?
问题描述
如果您查看此代码段
$(document).ready(function() {
$(".inner-content").text("test ".repeat(5000));
});
function test(){
$(".footer").remove();
}
.wrapper {
height: 100vh;
}
.header{
height: 50px;
min-height: 50px;
background-color: pink;
}
.content{
background-color: lightblue;
overflow: auto;
}
.footer{
height: 50px;
min-height: 50px;
background-color: pink;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="d-flex flex-column wrapper">
<div class="header">
<button onclick="test()">Click Me</button>
</div>
<div class="flex-grow-1 content">
<div class="inner-content">
</div>
</div>
<div class="footer"></div>
<div>
我有一个垂直的 flexbox,带有一个设置高度的页眉和页脚。加上一个填充空间并在溢出时滚动的主体。
如果我动态删除或隐藏页脚(通过单击 codepen 上的按钮),正文内容将不会呈现在页脚所在的位置。这似乎只发生在 chrome 中。
有解决方法/解决方法吗?
解决方案
position
毕竟,来自 CSS 的+z-index
可能不会在隐藏页脚时触发。
$(document).ready(function() {
$(".inner-content").text("test ".repeat(5000));
});
function test(){
$(".footer").remove();
}
.wrapper {
height: 100vh;
}
.header{
height: 50px;
min-height: 50px;
background-color: pink;
}
.content{
background-color: lightblue;
overflow: auto;
/* chrome*/
position:relative;
z-index:1;
}
.footer{
height: 50px;
min-height: 50px;
background-color: pink;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="d-flex flex-column wrapper">
<div class="header">
<button onclick="test()">Click Me</button>
</div>
<div class="flex-grow-1 content">
<div class="inner-content">
</div>
</div>
<div class="footer"></div>
<div>
或经典:背面可见性:隐藏
$(document).ready(function() {
$(".inner-content").text("test ".repeat(5000));
});
function test(){
$(".footer").remove();
}
.wrapper {
height: 100vh;
}
.header{
height: 50px;
min-height: 50px;
background-color: pink;
}
.content{
background-color: lightblue;
overflow: auto;
/* chrome*/
backface-visibility:hidden;
}
.footer{
height: 50px;
min-height: 50px;
background-color: pink;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="d-flex flex-column wrapper">
<div class="header">
<button onclick="test()">Click Me</button>
</div>
<div class="flex-grow-1 content">
<div class="inner-content">
</div>
</div>
<div class="footer"></div>
<div>
推荐阅读
- javascript - JavaScript 创建对象结构数组
- html - How to make the download button for an audio file work?
- sql - 如何在 SQL(postgres)中使用 GROUP BY 和 ORDER BY 检索一定数量的记录?
- arrays - 计算 x 和 y 之间的值在数组中出现的次数
- swift - 有没有办法覆盖 Double 以使其在 swift 中默认为每个 double 值小数点后 2 位?
- ios - WDA 中的滑动或拖动时间太长
- java - java线程中的共享变量
- class - 类中的 Realloc 指针也是一个不起作用的指针
- ffmpeg - ffmpeg如何选择最大bps的音频通道?
- reactjs - ReactJS SubmissionError Promise 中未捕获的错误