首頁 >web前端 >css教學 >為什麼我的黏性元素在 Flexbox 容器中不起作用?

為什麼我的黏性元素在 Flexbox 容器中不起作用?

DDD
DDD原創
2024-12-15 01:22:21165瀏覽

Why Doesn't My Sticky Element Work in a Flexbox Container?

Flexbox 陷阱:Position: Sticky 元素行為無法預測

開發人員在Flexbox 容器中使用position: Sticky 時常會遇到意外行為。預設情況下,flexbox 元素會拉伸以填充可用空間,從而導致所有元素的高度相等,這會阻止滾動並使黏性元素變得不起作用。

解決方案在於修改黏性元素的align-self 屬性到 flex-start,將其高度重設為 auto。這可以實現滾動並允許黏性元素黏附到其預期位置。

範例:

在以下程式碼中,黏性元素在對齊之前無法正常運作 - self: 新增了flex-start:

<div>
.flexbox-wrapper {
  display: flex;
  overflow: auto;
  height: 200px;
}
.sticky {
  position: sticky;
  top: 0;
  align-self: flex-start;
  background-color: red;
}

瀏覽器支援:

  • align-selfflex:所有主要瀏覽器都支援flex- start,除了Safari,它需要-webkit- 前綴:

    .sticky {
      position: -webkit-sticky;
      position: sticky;
      top: 0;
      align-self: flex-start;
    }

透過實施此修復,開發人員可以確保 position: Sticky 元素在 Flexbox 容器中按預期運行。

以上是為什麼我的黏性元素在 Flexbox 容器中不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn