html - 溢出-y:自动剪切左侧绝对定位的元素。在滚动上移动元素的解决方案
问题描述
我经历了多个问题、许多答案和解决方案,并找到了一个几乎完美的解决方案(元素行为固定定位)。这是我的例子:
body {
margin: 0;
}
p {
margin: 0;
}
.panel {
height: 90vh;
width: 20vw;
display: flex;
flex-direction: column;
top: 0;
left: 100px;
position: absolute;
background-color: gray;
}
.best-sol {
right: 0;
left: auto;
}
.should-work .content-wrapper {
position: relative;
}
.wrapper {
width: 100%;
overflow-y: auto;
flex: 1;
}
.inner-scroll {
background-color: aqua;
display: flex;
flex-direction: column;
}
.content-wrapper{
width: 20px;
height: 20px;
background-color: yellow;
display: flex;
justify-content: flex-end;
}
.content {
width: 200px;
height: 10px;
background-color: red;
box-shadow: 0 0 10px black;
position: absolute;
display: flex;
bottom: 0;
}
<body>
<div class="panel should-work">
<p>Should work</p>
<div class="wrapper">
<div class="inner-scroll">
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div class="content-wrapper">
<div class="content"></div>
</div>
</div>
</div>
</div>
<div class="panel best-sol">
<p>Best solution so far</p>
<div class="wrapper">
<div class="inner-scroll">
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div>a</div>
<div class="content-wrapper">
<div class="content"></div>
</div>
</div>
</div>
</div>
</body
理想情况下,滚动时 .content 不应停留在窗口底部。它应该出现在最后。我想要的是让.content,红色框超出滚动容器,但随着滚动移动。
以上是最接近的解决方案。理想情况下(但也许我的想法是错误的)设置内容包装器相对定位应该可以解决问题,但它会减少内容。
有任何想法吗?
解决方案
将内容 css 设置为 -
.content {
width: inherit;
height: inherit;
background-color: red;
box-shadow: 0 0 10px black;
bottom: 0;
}
它将按照您在“应该工作”示例中显示的方式运行。内容包装器中的宽度也为 200px 才能正常工作。
.content-wrapper{
width: 200px;
height: 20px;
background-color: yellow;
display: flex;
justify-content: flex-end;
}
推荐阅读
- c# - 如何搜索 json 文件 C#?
- java - 强制接口实现首先运行方法
- c++ - C++ 谷物保存/load_and_construct 不工作
- java - (Java) 使用 ActionListeners 创建多个 (26) 按钮而不重复代码
- python - 如何在没有身份验证或权限的情况下创建 Django 可浏览 REST API?
- android - MPAndroidChart 标签位置
- web-services - wsimport 实用工具如何在后端创建具有包结构的类?这背后的背景机制是什么?
- kubernetes - 来自 openstack.org/standalone-cinder 的provisioner kubernetes.io/cinder 之间的区别
- java - Drive API:更改所有者时权限不足
- angular5 - 安装特定的角度版本不起作用(Angular 5.2.10)