繁体   English   中英

如何具有元素的固定位置但相对于容器

[英]How to have fixed position of element but relative to container

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

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

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

请帮忙。

PS:标记和css都可以更改。

在此处输入图片说明

 .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>

将您的内容包装在 div 中并修改 css 对我有用。 工作示例

 .container { width: 400px; height: 200px; border: 1px solid; position: relative; overflow: hidden; margin-bottom: 4rem; } .line { height: 8px; width: 100%; background-color: grey; border-radius: 8px; margin-bottom: 20px; } .text { max-height: 190px; overflow: auto; position: relative; } .content-div { width: 334px; margin: 0 auto; } .button { width: 32px; height: 32px; background-color: orange; display: inline-block; position: absolute; bottom: 0; } .left { left: 0; } .right { right: 0; }
 <div class="container"> <div class="text"> <div class="content-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 class="line"></div> </div> </div> <div class="button-wrapper"> <div class="button left"></div> <div class="button right"></div> </div> </div>

这是使用 CSS grid 和position:sticky想法,您可以在其中保留标记

 .container { width: 400px; height:200px; border: 1px solid; overflow:auto; display:grid; grid-template-columns:auto 1fr auto; /* 3 columns */ margin-bottom:4rem; } .line { height:8px; background-color: grey; border-radius: 8px; margin-bottom:20px; } .text{ padding: 5px 50px; } .button-wrapper{ position:sticky; bottom:5px; margin: auto 5px 5px; /* auto will push the element to the bottom*/ } .button{ width:32px; height:32px; background-color:orange; }
 <div class="container"> <div class="button-wrapper"> <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 "> <div class="button "></div> </div> </div> <div class="container"> <div class="button-wrapper"> <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> <div class="button-wrapper "> <div class="button "></div> </div> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM