Tajuk baharu: Perkara saya ialah: sifat melekit unsur melekit tidak dikekalkan apabila menggunakan flexbox
P粉356128676
2023-08-21 23:28:29
<p>Saya terperangkap dalam isu ini untuk seketika dan ingin berkongsi <kod>kedudukan: sticky</code> + flexbox issue:</p>
<p>Div melekit saya, selepas bertukar kepada paparan bekas flexbox, tiba-tiba tidak lagi melekit apabila dibalut dengan elemen induk flexbox. </p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">.flexbox-wrapper {
paparan: flex;
ketinggian: 600px;
}
.biasa {
warna latar belakang: biru;
}
.melekit {
kedudukan: -webkit-sticky;
kedudukan: melekit;
atas: 0;
warna latar belakang: merah;
}</pre>
<pre class="brush:html;toolbar:false;"><div class="flexbox-wrapper">
<div class="biasa">
Ini kotak biasa
</div>
<div class="sticky">
Ini adalah kotak melekit
</div>
</div></pre>
<p><br /></p>
<p>Masalah paparan JSFiddle</p>
Dalam kes saya, bekas induk menggunakan fungsi
overflow-x: hidden;
这个样式,这会破坏position: sticky
. Anda perlu mengalih keluar peraturan ini.Tiada elemen induk harus mempunyai peraturan CSS di atas digunakan padanya. Syarat ini terpakai kepada semua elemen induk sehingga (tetapi tidak termasuk) elemen 'badan'.
Memandangkan elemen flexbox lalai kepada
stretch
, semua elemen mempunyai ketinggian yang sama dan tidak boleh ditatal.Tambahkan
align-self: flex-start
pada elemen melekit, tetapkan ketinggian kepada automatik, sekali gus membolehkan penatalan dan pembetulan.Pada masa ini ini disokong dalam semua penyemak imbas utama, tetapi Safari masih menghadapi beberapa masalah dengan menggunakan jadual
-webkit-
前缀,而除了Firefox之外的其他浏览器在使用position: sticky
.