Rumah >hujung hadapan web >tutorial css >Mengapa Kedudukan Tetap dengan Limpahan: Gagal Tersembunyi pada Elemen Bersarang, dan Bagaimanakah `klip` Boleh Digunakan sebagai Penyelesaian?

Mengapa Kedudukan Tetap dengan Limpahan: Gagal Tersembunyi pada Elemen Bersarang, dan Bagaimanakah `klip` Boleh Digunakan sebagai Penyelesaian?

DDD
DDDasal
2024-12-05 09:34:10936semak imbas

Why Does Fixed Positioning with Overflow: Hidden Fail on Nested Elements, and How Can `clip` Be Used as a Solution?

Elemen Ibu Bapa dan Anak dengan Kedudukan Tetap dan Limpahan: Isu Tersembunyi

Kedudukan tetap ialah sifat CSS berguna yang membolehkan elemen diletakkan di lokasi tertentu tanpa mengira kelakuan menatal induknya. Walau bagaimanapun, apabila kedua-dua elemen induk dan anak diposisikan tetap dan induk mempunyai limpahan: harta tersembunyi, isu pelik timbul.

Pertimbangkan contoh 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;
}

Dalam senario ini , elemen anak hendaklah terkandung dalam induk, dengan sebarang limpahan disembunyikan oleh sifat limpahan ibu bapa. Walau bagaimanapun, ini tidak berlaku disebabkan oleh pengehadan dalam pemaparan CSS.

Penyelesaian: Menggunakan klip CSS

Untuk mengatasi isu ini, sifat klip CSS boleh digunakan sebaliknya limpahan: tersembunyi. Sifat klip membenarkan ibu bapa mengehadkan keterlihatan elemen anaknya pada kawasan segi empat tepat tertentu.

.parent {
  position: fixed;
  clip: rect(0, 300px, 300px, 0);  /* Clip the parent to its own dimensions */
}

Dengan menetapkan sifat klip kepada elemen induk, elemen anak akan digunting mengikut dimensi induk, menyembunyikan sebarang limpahan dengan berkesan.

Pertimbangan

Sementara harta klip ialah penyelesaian yang berdaya maju, ia disertakan dengan beberapa kaveat:

  • Kedudukan ibu bapa tidak boleh statik atau relatif.
  • Koordinat tepat tidak menyokong peratusan.
  • Kedudukan dan perubahan elemen kanak-kanak mungkin terhad.

Untuk mengurangkan had ini, penggunaan keterlihatan belakang dan ibu bapa yang mempunyai kedudukan mutlak boleh dipertimbangkan.

Pelaksanaan

.parent {
  position: absolute; /* Use absolute positioning for the parent */
  clip: rect(0, 300px, 300px, 0);
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  backface-visibility: hidden;
}

Pelaksanaan ini menyediakan penyelesaian untuk meletakkan dan mengubah isu dalam elemen kanak-kanak dan memastikan bahawa tingkah laku keratan adalah konsisten merentas pelayar.

Atas ialah kandungan terperinci Mengapa Kedudukan Tetap dengan Limpahan: Gagal Tersembunyi pada Elemen Bersarang, dan Bagaimanakah `klip` Boleh Digunakan sebagai Penyelesaian?. 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