CSS 嵌套元素的粘性位置
CSS sticky position with nested elements
据我所知,粘性位置在脱离框架之前会粘在它的容器上。
我的问题是我有一些嵌套的容器和其中的粘性元素,我希望它能很好地粘住parent。
有人可能会建议我将内部粘性 child 泡起来,但问题是它必须留在 parent 内部,因为 parent 是一个 flexbox,其中包含两个元素,我希望其中一个元素具有粘性,同时允许另一个元素在溢出时滚动。
一个例子html:
<div class="main-container">
<div class="inner-container">
<div class="sticky">sticky child</div>
<div class="non-sticky">non-sticky child</div>
</div>
</div>
以及样式:
.inner-container {
display: flex;
flex-direction: row;
}
.sticky {
position: sticky;
top: 0;
}
假设 main-container
是可滚动的并且 inner-container
正在滚动。
我知道css没有明确的解决方案,问题是有没有什么技巧可以解决。
不确定您要做什么,但这是否接近您的需要?
.inner-container {
display: flex;
flex-direction: row;
}
.sticky {
position: sticky;
top: 0;
width: 100px;
height: 30px;
justify-self: flex-start;
background-color: green;
}
.non-sticky {
background-color: blue;
width: 100%;
flex-grow: 5;
flex-shrink: 5;
}
.main-container {
height: 140px;
overflow: scroll;
}
.inner-container {
height: 300px;
}
<div class="main-container">
<div class="inner-container">
<div class="sticky">sticky child</div>
<div class="non-sticky">non-sticky child</div>
</div>
</div>
据我所知,粘性位置在脱离框架之前会粘在它的容器上。
我的问题是我有一些嵌套的容器和其中的粘性元素,我希望它能很好地粘住parent。
有人可能会建议我将内部粘性 child 泡起来,但问题是它必须留在 parent 内部,因为 parent 是一个 flexbox,其中包含两个元素,我希望其中一个元素具有粘性,同时允许另一个元素在溢出时滚动。
一个例子html:
<div class="main-container">
<div class="inner-container">
<div class="sticky">sticky child</div>
<div class="non-sticky">non-sticky child</div>
</div>
</div>
以及样式:
.inner-container {
display: flex;
flex-direction: row;
}
.sticky {
position: sticky;
top: 0;
}
假设 main-container
是可滚动的并且 inner-container
正在滚动。
我知道css没有明确的解决方案,问题是有没有什么技巧可以解决。
不确定您要做什么,但这是否接近您的需要?
.inner-container {
display: flex;
flex-direction: row;
}
.sticky {
position: sticky;
top: 0;
width: 100px;
height: 30px;
justify-self: flex-start;
background-color: green;
}
.non-sticky {
background-color: blue;
width: 100%;
flex-grow: 5;
flex-shrink: 5;
}
.main-container {
height: 140px;
overflow: scroll;
}
.inner-container {
height: 300px;
}
<div class="main-container">
<div class="inner-container">
<div class="sticky">sticky child</div>
<div class="non-sticky">non-sticky child</div>
</div>
</div>