【发布时间】:2016-01-07 03:23:01
【问题描述】:
我在 固定 顶部有一些内容(它必须相对于视口定位)div 和下面的(可滚动)列表。
我希望列表从兄弟元素的底部开始,并在固定父元素的底部结束。我可以使用top: 123px;,但顶部内容的高度可变(height:calc(100%-123px); 和margin 相同)。
每个职位都有一些东西使他们不适合这份工作(例如:absolute 元素不考虑兄弟姐妹)。
Fiddle(不需要边框和边距)
#fixed-wrapper {
border: 1px solid blue;
position: fixed;
top: 32px;
bottom: 30px;
left: 5px;
right: calc(30%-5px);
}
#fixed-wrapper .scrollable-list {
position: absolute;
overflow-y: scroll;
top: 50px;
bottom: 0px;
color: red;
border: 1px solid red;
}
.some-bar, .some-other-bar {
border: 1px solid green;
margin: 2px;
padding 2px;
}
<div id="fixed-wrapper">
<div class="some-bar">some variable length text</div>
<div class="some-other-bar">some image or text</div>
<div class="scrollable-list">
<div class="list-item">item1</div>
<div class="list-item">item2</div>
<div class="list-item">item1</div>
<div class="list-item">item2</div>
<div class="list-item">item1</div>
<div class="list-item">item2</div>
<div class="list-item">item1</div>
</div>
</div>
我怎样才能使这个设计工作?或者,或者,我怎么可能重新组织 DOM(或使用其他标签,可能是丑陋的表格)来拥有这些属性?
编辑:该解决方案只需要在 Chrome 下工作。
【问题讨论】:
-
只是为了澄清,所以您希望列表项从红色边框的底部开始,不是吗?
-
不,兄弟元素是指列表的兄弟元素,所以上面的 绿色
-
我知道了,旁注,复制/粘贴小提琴中的代码并将其插入问题本身,否则它可能会被关闭。
-
啊...那么是的,flexbox 可以工作。
标签: html css scroll css-position