


Penyelesaian kepada masalah tahap yang mutlak relatif tidak boleh menembusi_Pertukaran pengalaman
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>
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;}
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>
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;}
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; }
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>
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; }
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>
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; }
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>
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;}
这时候我们看,不论#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;}

Untuk sementara waktu, iTunes adalah anjing besar dalam podcasting, jadi jika anda mengaitkan "Langgan Podcast" untuk suka:

Kami kehilangan opera ketika mereka pergi Chrome pada tahun 2013. Sama dengan Edge ketika ia juga menjadi Chrome awal tahun ini. Mike Taylor memanggil perubahan ini "menurun

Dari laman web Trashy Clickbait hingga paling banyak penerbitan, butang saham telah lama di mana -mana di seluruh web. Namun ia boleh dikatakan bahawa ini

Dalam roundup minggu ini, Apple masuk ke dalam komponen web, bagaimana Instagram adalah skrip insta-loading, dan beberapa makanan untuk difikirkan untuk sumber kritikal sendiri.

Apabila saya melihat melalui dokumentasi arahan git, saya perhatikan bahawa banyak daripada mereka mempunyai pilihan untuk. Saya pada mulanya berpendapat bahawa ini hanya

Bunyi seperti masalah yang sukar tidak? Kami sering tidak mempunyai tembakan produk dalam beribu -ribu warna, supaya kita dapat membalikkannya. Kami juga tidak

Saya suka apabila laman web mempunyai pilihan mod gelap. Mod gelap menjadikan laman web lebih mudah bagi saya untuk membaca dan membantu mata saya berasa lebih santai. Banyak laman web, termasuk

Ini saya melihat elemen HTML untuk kali pertama. Saya telah menyedarinya untuk seketika, tetapi Haven ' t mengambilnya untuk putaran lagi. Ia mempunyai cukup keren dan


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)