黏性元素與 Flexbox:一個陷阱
某些 CSS 配置可能會導致意外行為。當將position:sticky與flexbox組合時,就會出現這樣的情況。最初,黏性元素保持靜止狀態,直到到達指定的滾動位置,但當放置在 Flexbox 容器中時,這種行為就會停止。
問題
問題源自於預設彈性盒行為。預設情況下,Flexbox 容器中的所有元素都會拉伸以適應可用空間。因此,任何黏性元素都會失去其預期功能,因為 Flexbox 容器會阻止滾動。
解決方案
要解決此問題,請加入align-self: flex-start黏性元素的屬性。這會將黏性元素的高度設定為自動,允許內容自然流動並啟用滾動。
瀏覽器相容性
大多數主要瀏覽器都支援此解決方案,儘管Safari需要使用-webkit-前綴:
.flexbox-wrapper { display: flex; } .sticky { position: -webkit-sticky; /* for Safari */ position: sticky; top: 0; align-self: flex-start; /* fix */ }
雖然Firefox不支援align-self: flex-start 屬性,它不會遇到與position:sticky相同的捲動問題。此外,所有瀏覽器中的表格尚未完全支援position:sticky。建議謹慎使用,尤其是在滿足特定瀏覽器要求時。
以上是為什麼我的黏性元素不再黏在 Flexbox 容器內?的詳細內容。更多資訊請關注PHP中文網其他相關文章!