相关疑难解决方法(0)

如果您将“ bottom:0”指定为“ sticky”,为什么它会做一些与规范不同的事情?

当我阅读有关MDN position属性的文章时,这是一个问题。我认为此处sticky描述的行为与实际行为之间存在明显的差异。


根据MDN,固定位置元素将被视为相对位置元素,直到超过指定的阈值为止;当超过阈值时,它们将被视为固定位置元素,直到达到父元素的边界为止(Link)。

粘性定位可以看作是相对定位和固定定位的混合体。粘性定位的元素将被视为相对定位,直到其超过指定的阈值为止,在该点处将其视为固定的,直到其到达其父对象的边界为止。例如...

#one { position: sticky; top: 10px; } 
Run Code Online (Sandbox Code Playgroud)

...将相对位置为id的元素定位到视口滚动之前,以使元素距离顶部小于10个像素。超过该阈值,该元素将从顶部固定为10个像素。

因此,我创建了以下代码并确认了操作。

#one { position: sticky; top: 10px; } 
Run Code Online (Sandbox Code Playgroud)
body {
  margin: 0;
}

.container {
  display: flex;
  flex-direction: column;
}

.container>* {
  width: 100%;
}

header {
  background: #ffa;
  height: 130vh;
}

main {
  background: #faf;
  height: 210vh;
}

footer {
  background: #faa;
  height: 8vh;
  position: sticky;
  bottom: 0;
}

.footer {
  background: #aff;
  height: 100vh;
}
Run Code Online (Sandbox Code Playgroud)

根据MDN文章,此代码“是相对放置元素,直到通过滚动视口使元素的位置离视口底部小于0px为止,并且当它离底部大于0px时成为固定的放置元素“ 我刚在想。

但是,结果是“滚动到固定位置元素,直到通过滚动视口使元素的位置从视口的下端开始小于0px为止,并且当从下视点大于0px时成为相对排列的元素结束”。 …

css css-position sticky

8
推荐指数
2
解决办法
882
查看次数

为什么 position:sticky with left:0 在可滚动容器内不工作?

我有这个问题 - 我有一个包含一些行的容器,每行都有一个粘性左列,然后是多个其他列。现在在下面的示例中,这会起作用一段时间,但是当您滚动父容器时,粘性位置不再起作用,并且随着您滚动而被推动。

.container {
  overflow-x: scroll;
}

.row {
  display: flex;
  width: 100%;
  
}

.item {
  min-width: 173px;
}

.sticky {
  min-width: 250px;
  position: sticky;
  left: 0;
  background: red;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="row">
    <div class="item sticky">STICKY ROW 1</div>
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div class="item">6</div>
    <div class="item">7</div>
    <div class="item">8</div>
    <div class="item">9</div>
    <div class="item">10</div>
  </div>
  <div class="row">
    <div class="item sticky">STICKY ROW 2</div>
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div class="item">6</div> …
Run Code Online (Sandbox Code Playgroud)

html css sticky flexbox

4
推荐指数
1
解决办法
405
查看次数

为什么带有position:sticky的元素不会停留在父对象的底部?

我试图了解CSS的“粘性”功能。我可以让它坚持其父级的“顶部”,而不是其“底部”

我的测试代码是:

.block {
  background: pink;
  width: 50%;
  height: 200px;
}

.move {
  position: sticky;
  bottom: 0;
}
Run Code Online (Sandbox Code Playgroud)
1111<br/>11111<br/>11111<br/>11111<br/>11111<br/>11111<br/>11111<br/>
<div class="block">
  AAAA
  <div class="move">
    BBBB
  </div>
</div>
222222<br/>222222<br/>222222<br/>222222<br/>222222<br/>222222<br/>
Run Code Online (Sandbox Code Playgroud)

当我将“ move”设置为“ top:0”时,它停留在粉红色块的顶部,但是当我将其设置为“ bottom:0”时,它似乎不再固定/发粘。

css css-position sticky css3

3
推荐指数
2
解决办法
623
查看次数

标签 统计

css ×3

sticky ×3

css-position ×2

css3 ×1

flexbox ×1

html ×1