Rumah >hujung hadapan web >tutorial css >Mengapa Elemen Melekit Saya Berhenti Melekat Di Dalam Bekas Flexbox?

Mengapa Elemen Melekit Saya Berhenti Melekat Di Dalam Bekas Flexbox?

Patricia Arquette
Patricia Arquetteasal
2024-12-21 17:21:11542semak imbas

Why Does My Sticky Element Stop Sticking Inside a Flexbox Container?

Elemen Melekit dan Flexbox: A Gotcha

Konfigurasi CSS tertentu boleh membawa kepada tingkah laku yang tidak dijangka. Satu senario sedemikian berlaku apabila menggabungkan kedudukan: melekit dengan flexbox. Pada mulanya, elemen melekit kekal bertakung sehingga mencapai kedudukan tatal yang ditentukan, namun tingkah laku ini terhenti apabila diletakkan di dalam bekas kotak flex.

Isunya

Masalahnya berpunca daripada tingkah laku flexbox lalai. Secara lalai, semua elemen dalam bekas flexbox terbentang agar sesuai dengan ruang yang tersedia. Akibatnya, sebarang elemen melekit kehilangan kefungsian yang dimaksudkan kerana bekas kotak flex menghalang penatalan.

Penyelesaian

Untuk menyelesaikan isu ini, tambahkan align-self: flex-start harta kepada unsur melekit. Ini menetapkan ketinggian elemen melekit kepada automatik, membenarkan kandungan mengalir secara semula jadi dan mendayakan penatalan.

Keserasian Pelayar

Kebanyakan penyemak imbas utama menyokong penyelesaian ini, walaupun Safari memerlukan penggunaan awalan -webkit-:

.flexbox-wrapper {
  display: flex;
}
.sticky {
  position: -webkit-sticky; /* for Safari */
  position: sticky;
  top: 0;
  align-self: flex-start; /* fix */
}

Walaupun Firefox tidak menyokong align-self: flex-start property, ia tidak mengalami isu penatalan yang sama dengan position: sticky. Selain itu, position: sticky belum lagi disokong sepenuhnya untuk jadual dalam semua penyemak imbas. Anda dinasihatkan untuk berhati-hati, terutamanya apabila memenuhi keperluan penyemak imbas tertentu.

Atas ialah kandungan terperinci Mengapa Elemen Melekit Saya Berhenti Melekat Di Dalam Bekas Flexbox?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn