问题遇到的现象和发生背景
在编辑网页,下面三个盒子是使用flex布局实现左右并列,现在想把第一个盒子设置固定定位, 如何设置呢?
我自己的解决思路是:设置第一个盒子的替身占着原来的位置,然后就可以对真实的第一个盒子进行固定定位了,有没有其他更好的方法呢?
在编辑网页,下面三个盒子是使用flex布局实现左右并列,现在想把第一个盒子设置固定定位, 如何设置呢?
我自己的解决思路是:设置第一个盒子的替身占着原来的位置,然后就可以对真实的第一个盒子进行固定定位了,有没有其他更好的方法呢?
使中间盒子让出左边盒子的宽度就可以了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
left: 0;
box-sizing: border-box;
}
.box {
display: flex;
}
.border {
border: 1px solid #ddd;
}
.left {
flex: 0 0 200px;
height: 400px;
}
.center {
flex: 1;
height: 1600px;
}
.right {
flex: 0 0 300px;
height: 600px;
}
/* 吸附下的样式 */
.stick .left {
position: fixed;
top: 0;
left: 0;
width: 200px;
}
.stick .center {
margin-left: 200px; /* 让出 left 的宽度 */
}
</style>
</head>
<body>
<div class="box">
<div class="left border">
left
</div>
<div class="center border">
center
</div>
<div class="right border">
right
</div>
</div>
<script src="https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js"></script>
<script>
$(window).scroll(function() {
var top = $(document).scrollTop()
if (top > 50) {
$('.box').addClass('stick')
} else {
$('.box').removeClass('stick')
}
})
</script>
</body>
</html>