Rumah > hujung hadapan web > tutorial css > Mengapakah `overflow:hidden` Gagal pada Ibu Bapa Kedudukan Tetap dengan Anak Kedudukan Tetap?

Mengapakah `overflow:hidden` Gagal pada Ibu Bapa Kedudukan Tetap dengan Anak Kedudukan Tetap?

DDD
Lepaskan: 2024-12-13 18:10:15
asal
264 orang telah melayarinya

Why Does `overflow:hidden` Fail on a Fixed-Positioned Parent with Fixed-Positioned Children?

Elemen Ibu Bapa dan Anak dengan Kedudukan Tetap: Memahami Limpahan:Pepijat tersembunyi

Pengenalan

Dalam senario tertentu yang melibatkan elemen ibu bapa dan anak dengan kedudukan tetap, limpahan:tersembunyi harta pada elemen induk gagal berfungsi seperti yang diharapkan. Artikel ini meneroka sebab di sebalik tingkah laku ini dan membentangkan penyelesaian yang berpotensi.

Gambaran Keseluruhan Isu

Pertimbangkan kod CSS dan HTML berikut:

.parent {
  position: fixed;
  overflow: hidden;
  width: 300px;
  height: 300px;
  background: #555;
}

.children {
  position: fixed;
  top: 200px;
  left: 200px;
  width: 150px;
  height: 150px;
  background: #333;
}
Salin selepas log masuk
<div class="parent">
  <div class="children">
  </div>
</div>
Salin selepas log masuk

Dalam senario ini, elemen .parent diletakkan tetap dan ditetapkan kepada overflow:hidden, tetapi Elemen .children nampaknya melangkaui batas induk, walaupun sifat limpahan.

Sebab Pepijat

Isu timbul kerana elemen induk diletakkan tetap , bermakna ia dialih keluar daripada aliran dokumen biasa dan sebaliknya diposisikan berbanding dengan port pandangan. Akibatnya, sifat limpahan:tersembunyi hanya digunakan dalam sistem koordinat elemen tetap itu sendiri, yang tidak menjejaskan elemen anak di luar sistem koordinat tersebut.

Potensi Penyelesaian: CSS Clip Property

Memandangkan overflow:hidden tidak berfungsi seperti yang dijangkakan dalam senario ini, pendekatan alternatif ialah menggunakan sifat klip CSS pada unsur induk. Sifat klip membolehkan anda mencipta kawasan keratan, mengekang kandungan elemen dalam sempadan yang ditentukan:

.parent {
  position: fixed;
  clip: rect(0px, 300px, 300px, 0px);  /* Top, Right, Bottom, Left */
  width: 300px;
  height: 300px;
  background: #555;
}
Salin selepas log masuk

Menggunakan clip: rect(), anda boleh menentukan kawasan keratan yang sejajar dengan sempadan induk elemen, menyembunyikan mana-mana kandungan kanak-kanak yang meluas di luar sempadan tersebut dengan berkesan.

Pertimbangan untuk Menggunakan CSS Clip Property

Walaupun sifat CSS clip menyediakan penyelesaian kepada overflow:hidden bug, adalah penting untuk ambil perhatian bahawa terdapat beberapa batasan dan pertimbangan yang perlu diberi perhatian:

  • Harta klip mempunyai sokongan terhad dalam penyemak imbas lama.
  • Ia mungkin memerlukan pelarasan berhati-hati untuk memastikan keserasian merentas berbeza penyemak imbas.
  • Elemen kanak-kanak yang diletakkan secara relatif atau benar-benar dalam ibu bapa yang dipotong mungkin mengalami beberapa isu kedudukan.

Kesimpulan

Memahami batasan overflow:hidden dengan elemen kedudukan tetap adalah penting untuk mencipta reka letak CSS yang berkesan. Dengan menggunakan kaedah alternatif seperti sifat klip CSS, anda boleh mencapai gelagat keratan yang diingini dan mengelakkan kemungkinan isu paparan. Adalah penting untuk menimbang faedah dan batasan teknik yang berbeza, memastikan ia sejajar dengan keperluan khusus reka bentuk anda.

Atas ialah kandungan terperinci Mengapakah `overflow:hidden` Gagal pada Ibu Bapa Kedudukan Tetap dengan Anak Kedudukan Tetap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan