z-index Tidak Berfungsi dalam IE dengan PDF dalam iFrame
Dalam Internet Explorer (IE), cuba menggunakan z- indeks pada iFrame yang mengandungi PDF boleh mengakibatkan tingkah laku yang tidak dijangka. Walaupun berfungsi dengan lancar dalam penyemak imbas lain seperti Chrome, pengguna IE menghadapi kesukaran.
Untuk memahami isu ini, kita perlu menyelidiki konsep elemen "bertingkap" dan "tanpa tingkap" dalam IE. Elemen bertingkap, seperti kawalan ActiveX dan pilihan jatuh turun, dipaparkan di luar satah MSHTML utama penyemak imbas. Sebaliknya, elemen tanpa tetingkap, seperti div dan medan input, dipaparkan dalam satah ini.
Interaksi Elemen Tanpa Tetingkap lwn. Tanpa Tetingkap
Yang penting, elemen bertingkap sentiasa diutamakan elemen tanpa tingkap, tanpa mengira z-index. Di sinilah masalah dengan iFrames yang mengandungi PDF timbul. Dalam IE, PDF dianggap sebagai elemen bertingkap, bermakna ia akan sentiasa muncul di atas elemen tanpa tetingkap, walaupun jika yang kedua mempunyai indeks z yang lebih tinggi.
Penyelesaian: Penyelesaian Menggunakan iFrame Lain
Malangnya, tiada penyelesaian yang mudah untuk isu ini. Walau bagaimanapun, penyelesaian boleh dicapai dengan memperkenalkan iFrame lain antara PDF dan kandungan halaman. iFrame "penutup" ini mempunyai indeks z negatif, memastikan ia kekal tersembunyi daripada pandangan. Dengan menyekat limpahan PDF, ia membenarkan gelagat z-index biasa digunakan pada kandungan halaman utama, membenarkan teks atau elemen lain muncul di atas PDF.
Butiran Pelaksanaan
Kod berikut menggariskan penyelesaian:
HTML:
<code class="html"><div id="outer"> <div id="inner">my text that should be on top</div> <iframe class="cover" src="about:blank"></iframe> </div> <iframe id="pdf" src="http://legallo1.free.fr/french/CV_JLG.pdf" width="200" height="200"></iframe></code>
CSS:
<code class="css">#outer { position: relative; left: 150px; top: 20px; width: 100px; z-index: 2; } #inner { background: red; } .cover { border: none; position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: -1; } #pdf { position: relative; z-index: 1; }</code>
Kesimpulan
Dengan menggunakan iFrame lain dengan indeks-z negatif, kami mewujudkan penghalang antara PDF dan kandungan halaman dengan berkesan. Penyelesaian ini membolehkan tingkah laku indeks z yang dijangka, membolehkan teks atau elemen lain muncul di atas PDF dalam IE. Walaupun penyelesaian ini tidak sesuai, ia menyediakan cara untuk menangani isu indeks-z dalam IE.
Atas ialah kandungan terperinci Mengapa z-index tidak berfungsi dengan PDF dalam iFrames dalam Internet Explorer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!