atribut z-indeks dalam CSS: alat yang berkuasa untuk mengawal susunan elemen halaman yang menyusun
Artikel ini meneroka atribut z-index
dalam CSS, yang digunakan untuk mengawal urutan cascade elemen halaman. Unsur -unsur dengan nilai yang lebih tinggi akan dipaparkan pada elemen dengan nilai yang lebih rendah. Ini sama dengan paksi-x dan paksi-y pada halaman yang mengawal kedudukan unsur-unsur mendatar dan menegak masing-masing, dan z-index
mengawal susunan elemen pada paksi z.
Atribut
z-index
, position
atau absolute
. relative
fixed
dengan menetapkan position: relative
top
dilakukan dalam konteks penyusunan induknya, yang bermaksud bahawa walaupun nilai unsur right
adalah tinggi, elemen itu masih boleh dipaparkan di tempat lain jika nilai induknya bottom
adalah rendah . left
Untuk meningkatkan organisasi dan fleksibiliti, disarankan untuk menggunakan kenaikan 100 untuk menetapkan nilai z-index
z-index
z-index
Pesanan penyusunan lalai z-index
unsur -unsur boleh bertindih dengan menggabungkan atribut
dan
,<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
,
,> atribut mengimbangi. position
top
Jika atribut right
setiap elemen ditetapkan kepada bottom
, mereka akan bertindih. Oleh kerana footer muncul terakhir dalam dokumen, ia disusun di atas dua elemen pertama secara lalai. left
Gunakan sifat offset position
dan absolute
untuk melihat susunan elemen yang lebih jelas.
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
top
Walaupun elemen bertindih boleh dibuat menggunakan left
, ini tidak membuat apa yang dipanggil
.
Konteks penyusunan boleh dibuat dengan cara berikut: position: absolute
Elemen mempunyai atribut
, dan nilai
tidakposition: absolute
item flexbox mempunyai relative
nilai yang tidak z-index
. auto
Kelegapan elemen auto
Atribut z-index
elemen opacity
transform
kembali ke contoh sebelumnya, kami mempunyai tiga elemen yang bertindih antara satu sama lain, tetapi pada masa ini mereka tidak mempunyai nilai z-index
.
z-index
membolehkan kami mengawal susunan susunan.
Jika kita menetapkan footer z-index
hingga 1, badan z-index
hingga 2, dan header z-index
hingga 3, urutan penyusunan lalai dapat diterbalikkan sepenuhnya.
di permukaan nampaknya mudah: semakin tinggi nilai, semakin tinggi unsur -unsur timbunan - jadi z-index
akan sentiasa berada di atas z-index: 9999
. Malangnya, realiti lebih rumit daripada ini. z-index: 9
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
dan letakkannya di luar sudut kanan bawah, kami akan melihatnya duduk di atas kotak hijau, di bawah kotak merah jambu. site-content
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
, kita mungkin berfikir bahawa untuk membuat kotak kuning ini muncul di atas kotak merah jambu, kita hanya perlu menetapkan nilai yang lebih tinggi untuk z-index
. z-index
hingga 4 (di atas z-index
), kita tidak akan melihat sebarang perubahan. Orang biasanya cuba memaksa menyusun dengan nombor yang sangat besar (seperti 9999), tetapi ini juga tidak mempunyai kesan. Dilihat dalam asas kod seperti nilai z-index: 3
adalah bau kod, jadi cuba mengelakkannya jika boleh. z-index
berkelakuan dalam konteks penyusunan. z-index
... (kod HTML dan CSS dalam contoh MDN ditinggalkan di sini kerana artikel itu terlalu panjang, tetapi bahagian penjelasan utama dikekalkan) ....
Semua ini dapat dijelaskan oleh fakta bahawa semua nilai
dihuraikan dalam konteks penyusunan ibu bapa mereka. Kerana nilai bekas induk z-index
adalah lebih tinggi daripada footer, semua elemen kedudukan dalam .site-content
dinilai dalam konteks itu. z-index
.site-content
Memahami susunan unsur -unsur dalam konteks penyusunan, anda boleh membandingkannya dengan kanak -kanak dalam senarai yang diperintahkan bersarang.
ini boleh ditulis seperti berikut:
header:
z-index: 5
Subjek: z-index: 4
Kotak 1: z-index: 4.6
Kotak 2: z-index: 4.1
Kotak 3: z-index: 4.3
z-index: 2
Oleh itu, walaupun header
z-index
Ia agak mengelirukan pada mulanya, tetapi dengan amalan ia benar -benar mula masuk akal! z-index
Jika anda ingin mengawal susunan elemen susunan, anda boleh menggunakan z-index
. Walau bagaimanapun, position
hanya akan berkuat kuasa apabila nilai absolute
elemen adalah relative
, fixed
atau z-index
.
Meletakkan elemen dengan tepat dengan position
sangat bagus untuk membina susun atur kompleks atau corak UI yang menarik, tetapi sering diinginkan untuk mengawal perintah penyusunan tanpa menggerakkan unsur -unsur dalam kedudukan asal pada halaman.
Jika ini berlaku, anda boleh menetapkan hanya position: relative
tetapi tidak memberikan nilai apa -apa untuk top
, right
, bottom
atau left
. Unsur ini akan kekal dalam kedudukan asalnya pada halaman, aliran dokumen tidak akan terganggu, dan nilai z-index
akan berkuatkuasa.
nilai z-indeks negatif boleh digunakan
Unsur terhidrat sering digunakan untuk membina bentuk kompleks atau komponen UI. Ini biasanya bermakna bahawa unsur -unsur ditumpukan pada satu sama lain dan nilai z-index
terus meningkat. Untuk meletakkan elemen di bawah elemen lain, ia hanya perlu mempunyai nilai z-index
yang lebih rendah, yang boleh menjadi negatif.
Ini berguna apabila menggunakan elemen pseudo dan ingin meletakkannya di belakang kandungan elemen induknya.
Oleh kerana cara menyusun konteks berfungsi, jika elemen
atau akan diposisikan selepas kandungan teks elemen induknya, nilai negatif :before
perlu ditetapkan di atasnya. :after
z-index
strategi z-indeks
mari kita meringkaskan strategi mudah yang saya gunakan semasa memohon
dalam projek saya.
z-index
Kami menggunakan kenaikan satu angka nilai
dan z-index
? Anda perlu menukar banyak nilai- mungkin di seluruh pangkalan kod, yang boleh menyebabkan masalah dan boleh menyebabkan CSS pecah di bahagian lain laman web. z-index: 3
z-index: 4
Tetapkan z-indeks dengan 100 langkah
Apabila berurusan dengan
, anda sering melihat kod seperti ini:
z-index
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
!important
Daripada menggunakan mana -mana nombor seperti 9999, 53 atau 12, kita boleh sistematisasi nisbah
z-index
Saya tidak menggunakan kenaikan angka tunggal
z-index
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
Pendekatan manual ini sangat dipercayai apabila membina sistem, tetapi apabila digunakan bersama dengan preprocessor seperti SASS, ia boleh dibuat lebih fleksibel.
... (bahagian Soalan Lazim ditinggalkan di sini kerana ia lebih berulang -ulang dengan output sebelumnya) ... z-index
Atas ialah kandungan terperinci Menguasai Z-indeks di CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!