html - 动态情况下的元素定位修复
问题描述
我正在使用 Bootstrap,我希望红色背景的右上角始终位于可见部分蓝色部分的右上角,无论窗口如何调整大小,因为它是响应式的。
红色应该是固定的,因为它不应该通过滚动来移动,但应该始终位于可见蓝色背景部分的右上角。
如图应该是这样的: 如果我滚动(我现在用windowspaint做了)
请检查链接或查看以下代码:
.row {
background: #f8f9fa;
margin-top: 20px;
}
.col {
border: solid 1px #6c757d;
padding: 10px;
}
.left {
background-color: blue;
width: 100%;
height: 4000px;
}
.right {
background-color: red;
width: 100%;
position: fixed;
right: 18%;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col-11 left">left
</div>
<div class="col-1 right">right
</div>
</div>
</div>
解决方案
您正在寻找position: sticky
这种情况。要完成这项工作,您需要做一些事情:
position: relative
在元素的父级上设置(.row
在本例中为 )top
在粘性元素上设置一个值。这是必需的,因此当元素切换到粘性时,它知道将其放置在哪里。- 我为元素添加了另一个类
.right
,因为 Bootstrap 的col
类更具体。.sticky
向该元素添加类,确保应用了位置属性。
.row {
background: #f8f9fa;
margin-top: 20px;
align-items: flex-start;
position: relative;
}
.left {
background-color: blue;
width: 100%;
height: 4000px;
}
.right.sticky {
background-color: red;
width: 100%;
position: sticky;
right: 18%;
top: 0;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col-11 left">left
</div>
<div class="col-1 right sticky">right
</div>
</div>
</div>
推荐阅读
- javascript - 通过 chrome 扩展覆盖 window.confirm() 确认?
- arrays - 自动完成发送数据 id
- python - 在 Python 中使用“in”关键字在集合中查找项目时遇到问题
- ruby-on-rails - Select2 不加载数据
- julia - 朱莉娅的相同代码不同的结果
- angular - ng serve 不会编译
- javascript - 使用 Knex.js 和 Objection.js 连接到 Azure Postgres 数据库
- javascript - Babel 7 + Typescript 在函数方法中使用解构时出现意外标记
- xml - 在滚动视图中添加卡片视图时不起作用
- python - DBSCAN 轮廓系数:这个 for 循环有效吗?