Bir öğeye
position: stickytopoverflow: hiddenautoscrollÖrneğin aşağıdaki yapıda iç kapsayıcı kaydırıldığı için başlık, sayfanın üstünde beklenen şekilde yapışmayabilir:
<div class="panel">
<aside class="menu">Menü</aside>
<main class="icerik">İçerik</main>
</div>.panel {
display: flex;
overflow: hidden;
height: 100vh;
}
.menu {
position: sticky;
top: 1rem;
}Uygulanabilir düzeltme
Önce gerçekten hangi öğenin kaydırılacağını belirleyin. Sayfanın tamamı kayacaksa kapsayıcıdaki gereksiz
overflow.panel {
display: flex;
min-height: 100vh;
/* overflow: hidden kaldırıldı */
}
.menu {
position: sticky;
top: 1rem;
align-self: flex-start;
}İç panelin kaydırılması isteniyorsa sticky öğeyi aynı kaydırma alanına koyun ve bu alana belirli bir yükseklik verin:
.panel {
display: flex;
height: 100vh;
}
.icerik {
overflow-y: auto;
}
.menu {
position: sticky;
top: 1rem;
align-self: flex-start;
}Ayrıca sticky öğenin üst kapsayıcısında çok küçük bir yükseklik,
align-items: stretchoverflowtop: 0Kontrol listesi
- Sticky öğede ,
top,bottomveyaleftdeğerlerinden uygun olanı var mı?right - Üst kapsayıcılarda gereksiz kullanılıyor mu?
overflow: hidden - Kaydırılan kapsayıcının belirli bir yüksekliği veya genişliği var mı?
- Sticky öğenin bulunduğu kapsayıcı, öğenin hareket edeceği kadar uzun mu?
- Flex veya grid düzeninde gerekirse eklenmiş mi?
align-self: flex-start
Tarayıcı geliştirici araçlarında üst kapsayıcıları sırayla seçip
overflowoutline: 1px solid red
