Rumah hujung hadapan web tutorial css Penyelesaian kepada masalah tahap yang mutlak relatif tidak boleh menembusi_Pertukaran pengalaman

Penyelesaian kepada masalah tahap yang mutlak relatif tidak boleh menembusi_Pertukaran pengalaman

May 16, 2016 pm 12:05 PM
css

Jika kita menetapkan LI kepada position:relative; set span to position:absolute; maka kita akan mendapati bahawa tidak kira berapa tinggi nilai indeks-z SPAN, ia akan sentiasa berada di bawah induk di belakangnya.

Beberapa ketika dahulu, saya masih ingat seseorang bertanya soalan dalam kumpulan yang benar-benar membuat semua orang keliru:

<ul>   
<li>第一块</li>   
<li><span>第二块</span></li>   
<li>第三块</li>   
<li>第四块</li>   
<li>第五块</li>   
</ul>
Salin selepas log masuk

Jika kita menetapkan LI kepada position:relative ;Set span to position:absolute; Kemudian kita akan mendapati bahawa tidak kira berapa tinggi nilai indeks-z SPAN ditetapkan, ia akan sentiasa berada di bawah induk di belakangnya.

*{margin:0; padding:0; list-style:none;}   
li {width:100px; height:100px; margin:0 5px 0 0; background:#000; float:left; position:relative; z-index:1;}   
li span {width:200px; height:100px; background:#c00; position:absolute; top:0; left:100px; z-index:1000;}
Salin selepas log masuk

Mudah untuk mencari anak-anak kita dengan mencubanya Nilai indeks-z mencapai 1000 dan ditetapkan kepada position:absolut; Saya memikirkannya untuk masa yang lama, dan saya fikir masalah asasnya ialah: menetapkan kedudukan yang sama: relatif/mutlak tahap antara label tahap yang sama tidak boleh diatasi oleh indeks-z; Dalam contoh kami di atas, tahap LI pertama akan sentiasa lebih kecil daripada tahap LI seterusnya, jadi kami menetapkan position:absolute pada kanak-kanak dalam LI, memberikan nilai indeks z yang sangat tinggi.

Mungkin anda akan berfikir seperti ini: Bukankah lebih baik untuk menetapkan position:relative sahaja untuk LI dengan span? Sangat benar. Apabila tiada LI lain menetapkan position:relative maka anak yang kita perlukan boleh terapung di atas semua kandungan. Tetapi bagaimana jika, sebenarnya, rentang diperlukan dalam semua LI, dan semua sifat perlu sama? Sudah tentu kita tidak semestinya memerlukan kesan ini. Tetapi kita perlu mempunyai kesan sedemikian: semua kanak-kanak tersembunyi, muncul apabila terdapat tindak balas tetikus dan terapung di atas semua kandungan. Kita perlu tahu bahawa ini memang sakit kepala, kerana seperti yang kita lihat di atas, anak-anak ditekan di bawah label ibu bapa seterusnya apabila dipaparkan. Mari kita laksanakan kesan kedudukan tindak balas tetikus ini:

<ul>   
<li><a href="" title=""><span>第一块</span></a></li>   
<li><a href="" title=""><span>第二块</span></a></li>   
<li><a href="" title=""><span>第三块</span></a></li>   
<li><a href="" title=""><span>第四块</span></a></li>   
<li><a href="" title=""><span>第五块</span></a></li>   
</ul>
Salin selepas log masuk

Kami menggunakan acara tetikus terpaut untuk melengkapkan paparan dan kesan sembunyi:

*{margin:0; padding:0; list-style:none;}   
li {height:100px; margin:0 5px 0 0; float:left; width:100px;}   
li a {position:relative; z-index:1; display:block; height:100px; width:100px; background:#000;}   
li a:hover {background:#000000;}   
li span {display:none;}   
li a:hover span {display:block; background:#c00; width:200px; height:200px; position:absolute; top:0; left:100px; z-index:1000;}
Salin selepas log masuk

Kami menetapkan sebagai kedudukan :relative; Dengan cara ini, anak-anaknya akan diletakkan berdasarkan sudut kiri atas ibu bapa sebagai asal koordinat. Kemudian kami menetapkan bentuk khusus dan sifat kedudukan rentang, dan kemudian menyembunyikannya. Kami kemudian menggunakan pseudo-class:hover A untuk mengaktifkan span. Jika kita melihat hasilnya, kita akan melihat bahawa semua yang sepatutnya berada di atas kini berada di bawah. Jadi bagaimana kita menyelesaikan masalah ini? Sebenarnya, adalah mustahil untuk memaksa penembusan dengan CSS, jadi kita memikirkannya, bolehkah kita menjadikan tag induk yang belum dicetuskan tidak mempunyai atribut position:relative, tetapi hanya apabila; ia dicetuskan? Berikan nilai sedemikian kepada ibu bapa ini? Sebenarnya, memikirkan perkara ini pada asasnya boleh menyelesaikan semua masalah:

*{margin:0; padding:0; list-style:none;}   
li {height:100px; margin:0 5px 0 0; float:left; width:100px;}   
li a {display:block; height:100px; width:100px; background:#000;}   
li a:hover {position:relative; z-index:1; }   
li span {display:none;}   
li a:hover span {display:block; width:200px; height:200px; background:#c00; position:absolute; top:0; left:100px; z-index:1000; }
Salin selepas log masuk

Kita hanya perlu menetapkan atribut a:hover ke position:relative;, supaya hanya apabila tetikus dicetuskan, A akan diberikan atribut yang agak berkedudukan. Dengan cara ini, rasa malu disekat oleh tag induk lain dapat diselesaikan.

Sudah tentu, jika anda tidak keberatan pelayar seperti IE5, kami juga boleh memudahkan kod:

<ul>   
<li><span>第一块</span></li>   
<li><span>第二块</span></li>   
<li><span>第三块</span></li>   
<li><span>第四块</span></li>   
<li><span>第五块</span></li>   
</ul>
Salin selepas log masuk

CSS boleh ditukar kepada ini:

*{margin:0; padding:0; list-style:none;}   
li {height:100px; margin:0 5px 0 0; float:left; width:100px; background:#000;}   
li:hover {position:relative; z-index:1;}   
li span {display:none;}   
li:hover span {display:block; width:200px; height:200px; background:#c00; position:absolute; top:0; left:100px; z-index:1000; }
Salin selepas log masuk

Tambahan:
Artikel "Position: relative/absolute cannot break through the level" yang diterbitkan suatu ketika dahulu bercakap tentang tahap dalam positioning Apabila saya membacanya semula dalam beberapa hari yang lalu, saya mendapati bahawa artikel itu tidak menyeluruh dan tidak menunjuk kepada perkara utama. Oleh itu, saya ingin membuat suplemen khas di sini dengan harapan tahap-tahap dalam kedudukan dapat dijelaskan dengan lebih jelas dan jelas.

Kita semua tahu bahawa kedudukan mempunyai empat nilai yang berbeza, iaitu: statik mutlak |. Ini dijelaskan dalam "Manual Cina CSS2" Su Yu: statik: tiada kedudukan khas, objek mengikut peraturan kedudukan HTML mutlak: seret objek keluar dari aliran dokumen, gunakan kiri, kanan, atas, bawah dan atribut lain untuk membuat mutlak; kedudukan. Dan latanya ditakrifkan melalui atribut indeks-z. Pada masa ini, objek tidak mempunyai jidar, tetapi masih terdapat padding dan sempadan relatif: objek tidak boleh disusun, tetapi akan diimbangi dalam aliran dokumen biasa berdasarkan atribut seperti kiri, kanan, atas, bawah, dll. .; tetap: IE5.5 dan NS6 belum tersedia Sifat ini tidak disokong.

Tetapi untuk menukar kedudukan susun objek, anda memerlukan sifat CSS yang lain: z-index. Tetapi indeks-z ini tidak maha kuasa Ia dihadkan oleh tahap kod HTML. Z-index hanya boleh mencerminkan kesannya pada HTML pada tahap yang sama. Apa yang perlu dinyatakan di sini ialah indeks-z hanya boleh digunakan apabila nilai kedudukan objek adalah relatif/mutlak. Di bawah ini kami akan memberikan beberapa contoh untuk menerangkan ciri-ciri tahap:

<p id="box_1">   
<p id="a">这是第一个块</p>   
<p id="b">这是第二个块</p>   
</p>
Salin selepas log masuk

Untuk kod HTML di atas, kita juga perlu menulis CSS untuk mentakrifkannya:

#a,#b {position:absolute; width:300px; height:100px; }   
#a {z-index:10; left:0; top:0; background:#000; }   
#b {z-index:1; left:20px; top:20px; background:#c00; }
Salin selepas log masuk

Ini ialah yang paling biasa Dalam kes ini, tahap tindanan #a dan #b boleh ditetapkan melalui indeks-z. Ini tidak ditanya, jadi dalam keadaan apa masalah akan berlaku? Mari lihat contoh lain:

<p id="box_1">   
<p id="a">这是第一个块</p>   
</p>   
<p id="box_2">   
<p id="b">这是第二个块</p>   
</p>
Salin selepas log masuk

Tulis CSS lain berdasarkan struktur ini Beri perhatian kepada perbezaan dalam CSS ini:

#box_1, #box_2 {position:relative; width:300px; height:100px; margin:10px; background:#ddd;}   
#a, #b {position:absolute; width:100px; height:300px; }   
#a {background:#c00; z-index:100; }   
#b {background:#0c0; z-index:1; left:50px;}
Salin selepas log masuk

这时候我们看,不论#a设为多大的值,他都无法超过#b,所以说z-index是无法冲破HTML的等级的,他必需是要同等级的状态下才可以发挥威力.那么如何解决这个问题呢?我可以反过来想,堂兄弟之间的顺序不能被重组,何不把父辈的等级做一次重组呢?所以我们把#box_1的CSS中加入一个z-index:100; 在#box_2的CSS中加入z-index:1;这样再看一下效果:

#box_1, #box_2 {position:relative; width:300px; height:100px; margin:10px; background:#ddd;}   
#box_1 {z-index:100;}   
#box_2 {z-index:1;}   
#a, #b {position:absolute; width:100px; height:300px; }   
#a {background:#c00; }   
#b {background:#0c0; left:50px;}
Salin selepas log masuk
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan butang bootstrap Cara menggunakan butang bootstrap Apr 07, 2025 pm 03:09 PM

Bagaimana cara menggunakan butang bootstrap? Perkenalkan CSS bootstrap untuk membuat elemen butang dan tambahkan kelas butang bootstrap untuk menambah teks butang

Cara mengubah saiz bootstrap Cara mengubah saiz bootstrap Apr 07, 2025 pm 03:18 PM

Untuk menyesuaikan saiz unsur-unsur dalam bootstrap, anda boleh menggunakan kelas dimensi, yang termasuk: menyesuaikan lebar: .col-, .w-, .mw-adjust ketinggian: .h-, .min-h-, .max-h-

Cara Menyiapkan Kerangka untuk Bootstrap Cara Menyiapkan Kerangka untuk Bootstrap Apr 07, 2025 pm 03:27 PM

Untuk menubuhkan rangka kerja bootstrap, anda perlu mengikuti langkah -langkah ini: 1. Rujuk fail bootstrap melalui CDN; 2. Muat turun dan tuan rumah fail pada pelayan anda sendiri; 3. Sertakan fail bootstrap di HTML; 4. Menyusun sass/kurang seperti yang diperlukan; 5. Import fail tersuai (pilihan). Setelah persediaan selesai, anda boleh menggunakan sistem grid Bootstrap, komponen, dan gaya untuk membuat laman web dan aplikasi yang responsif.

Cara memasukkan gambar di bootstrap Cara memasukkan gambar di bootstrap Apr 07, 2025 pm 03:30 PM

Terdapat beberapa cara untuk memasukkan imej dalam bootstrap: masukkan imej secara langsung, menggunakan tag HTML IMG. Dengan komponen imej bootstrap, anda boleh memberikan imej yang responsif dan lebih banyak gaya. Tetapkan saiz imej, gunakan kelas IMG-cecair untuk membuat imej boleh disesuaikan. Tetapkan sempadan, menggunakan kelas IMG-Sempadan. Tetapkan sudut bulat dan gunakan kelas IMG-bulat. Tetapkan bayangan, gunakan kelas bayangan. Saiz semula dan letakkan imej, menggunakan gaya CSS. Menggunakan imej latar belakang, gunakan harta CSS imej latar belakang.

Cara Menulis Garis Pecah Di Bootstrap Cara Menulis Garis Pecah Di Bootstrap Apr 07, 2025 pm 03:12 PM

Terdapat dua cara untuk membuat garis perpecahan bootstrap: menggunakan tag, yang mewujudkan garis perpecahan mendatar. Gunakan harta sempadan CSS untuk membuat garis perpecahan gaya tersuai.

Cara melihat tarikh bootstrap Cara melihat tarikh bootstrap Apr 07, 2025 pm 03:03 PM

Jawapan: Anda boleh menggunakan komponen pemetik tarikh bootstrap untuk melihat tarikh di halaman. Langkah -langkah: Memperkenalkan rangka kerja bootstrap. Buat kotak input pemilih Tarikh dalam HTML. Bootstrap secara automatik akan menambah gaya kepada pemilih. Gunakan JavaScript untuk mendapatkan tarikh yang dipilih.

Cara Mengesahkan Tarikh Bootstrap Cara Mengesahkan Tarikh Bootstrap Apr 07, 2025 pm 03:06 PM

Untuk mengesahkan tarikh dalam bootstrap, ikuti langkah -langkah ini: memperkenalkan skrip dan gaya yang diperlukan; memulakan komponen pemilih tarikh; Tetapkan atribut data-BV-tarikh untuk membolehkan pengesahan; Konfigurasikan peraturan pengesahan (seperti format tarikh, mesej ralat, dll.); Mengintegrasikan rangka kerja pengesahan bootstrap dan mengesahkan input tarikh secara automatik apabila borang dikemukakan.

Cara menetapkan bar navigasi bootstrap Cara menetapkan bar navigasi bootstrap Apr 07, 2025 pm 01:51 PM

Bootstrap Menyediakan panduan mudah untuk menubuhkan bar navigasi: Memperkenalkan Perpustakaan Bootstrap untuk membuat bar navigasi Tambah Identiti Jenama Buat Pautan Navigasi Tambah Elemen Lain (Pilihan) Laraskan Gaya (Pilihan)

See all articles