【发布时间】:2016-12-13 05:47:26
【问题描述】:
我有一个已知高度的容器(高度有时比屏幕长)。
这个容器有一个垂直和水平居中的元素(通过flex)。
我希望让这个元素始终保持在屏幕上,垂直居中在容器可见部分的块中。
我尝试了什么:
-
position:sticky; top:50%- 但是这只让它保持在容器的下半部分的中心。 -
position:sticky; bottom:50%- 但是这只让它保持在上半部分的中心 -
position:sticky; top: 50%; bottom:50%;- 似乎top覆盖bottom所以这就像我第一次尝试top:50%一样 - 我尝试设置负值,但没有成功
这是一个演示:
.container {
height: 1200px;
background-color: rgba(0, 0, 0, .7);
color: white;
display: flex;
justify-content: center;
align-items: center;
}
.center-piece {
background-color: green;
position: sticky;
top: 50%;
}
.center-piece2 {
background-color: steelblue;
position: sticky;
bottom: 50%;
}
<div class="container">
<div class="center-piece">
#1
</div>
<div class="center-piece2">
#2
</div>
</div>
有没有办法让它完全居中,同时“始终在屏幕上”,在容器的可见部分,包括顶部和底部?
这是我的应用程序的截屏:https://www.youtube.com/watch?v=CwYaBgolNHU
“rawr”将是其背后图像的控件。
【问题讨论】:
-
position: sticky仅适用于 Firefox(和带前缀的 Safari):caniuse.com/#search=sticky -
谢谢@Michael_B - 没关系,我只针对 Firefox 用户。
标签: html css flexbox css-position