javascript - 如何固定元素的位置但相对于容器

标签 javascript html css css-position

我有一个容器,左右各有 2 个按钮,中间有文本。我希望文本滚动,同时 2 个按钮固定在容器底部,如下图所示。

但我希望卷轴位于外容器上。附上下面的html和css代码。

此外,当线条小于容器的高度时,按钮仍应贴在容器的底部。

请帮忙。

PS: markup 和 css 都可以更改。

enter image description here

.container {
  width: 400px;
  height:200px;
  border: 1px solid;
  position:relative;
  overflow:auto;
  margin-bottom:4rem;
}

.line {
  height:8px;
  width:100%;
  background-color: grey;
  border-radius: 8px;
  margin-bottom:20px;
}

.text{
  padding: 5px 50px;
}

.button-wrapper{
    position: absolute;
    bottom: 4px;
}

.button{
  width:32px;
  height:32px;
  background-color:orange;
}

.left {
  left:4px;
}

.right{
  right:4px;
}
<div class="container">
   <div class="button-wrapper left">
    <div class="button "></div>
   </div>
   <div class="text">
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
   </div>
   <div class="button-wrapper right">
    <div class="button "></div>
   </div>
 </div>

最佳答案

如果您被允许更改您的标记,这里有一个解决方案:

将两个按钮放在一个包装器中:

   <div class="button-wrapper">
    <div class="button left"></div>   
    <div class="button right"></div>
   </div>

position: sticky 添加到您的 .button-wrapper

.container {
  width: 400px;
  height:200px;
  border: 1px solid;
  position:relative;
  overflow:auto;
  margin-bottom:4rem;
}

.line {
  height:8px;
  width:100%;
  background-color: grey;
  border-radius: 8px;
  margin-bottom:20px;
}

.text{
  padding: 5px 50px;
}

.button-wrapper{
    position: sticky;
    bottom: 4px;
}
.button-wrapper:after {
  content:'';
  display: table;
  clear: both;
  height: 0;
}

.button{
  width:32px;
  height:32px;
  background-color:orange;
}

.left {
  float: left;
  margin-left: 4px;
}

.right{
  float: right;
  margin-right: 4px;
}
<div class="container">
   <div class="text">
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
     <div class="line"></div>
   </div>
   <div class="button-wrapper">
    <div class="button left"></div>   
    <div class="button right"></div>
   </div>
 </div>

关于javascript - 如何固定元素的位置但相对于容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60451686/

相关文章:

javascript - 如何将输入直接发送到文本区域

css 网格 - 元素的可变跨度

css - 伪背景叠加文本之前和之后

javascript - For 循环和追加

javascript - JS - 这里有什么区别?

javascript - 在 jQuery Mobile 1.4.2 中获取加载的页面

javascript - 通过ajax从mysql数据库获取数据的问题

javascript - 响应列表在浏览器缩小时重新排列

php - 我如何在超链接上执行另一个 sql 查询,单击以显示数据库中的完整详细信息

css - Angular 中带有 mat-table 的 float 水平滚动条