J'en connais une technique fiable pour occlure les contrôles en mode fenêtré dans IE avec d'autres éléments, mais vous n'allez pas aimer ça.
Contexte: en mode fenêtré et sans fenêtre éléments
IE catégorise les éléments en deux catégories: les fenêtré et sans fenêtre. Régulière des éléments comme l' div
et input
sont sans fenêtre, rendue directement par le MSHTML moteur. Fenêtre des éléments, cependant, sont rendus dans un autre MSHTML avion et obtenir peint sur tous les éléments intrusion dans l'espace qui leur est réservé. Ils respectent z-index pour l'autre, mais toujours de la peinture sur le haut de la fenêtre des éléments.
La seule exception à cette règle est - iframe
. Dans IE 5 iframe
a été fenêtré élément. Cela a été changé dans IE 5.5; c'est maintenant une fenêtre de l'élément, mais en arrière pour des raisons de compatibilité, il va encore tirer sur fenêtré éléments avec une baisse de z-index. Surtout, il respecte également le z-index pour windowless éléments-si vous placez un iframe
sur une fenêtre de l'élément, tout sans fenêtre des éléments de la position iframe
sera visible.
Ce que cela signifie
Essentiellement, le PDF est peint sur la partie supérieure de la normale le contenu de la page-comme select
des éléments ont été jusqu'à IE 7. La meilleure solution est d'utiliser un autre iframe
placé entre votre contenu et le format PDF.
Démo
jsFiddle: http://jsfiddle.net/Jordan/gDuCE/
Code
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>
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;
}
Soutien
Cela a été testé et doit travailler dans IE 7-9. Si vous vous sentez persnickety à ce sujet en montrant dans les DOM pour les autres navigateurs, vous pouvez l'ajouter avec du JavaScript ou de l'envelopper dans un IE seul commentaire conditionnel:
<!--[if IE]><iframe class="cover" src="about:blank"></iframe><![endif]-->