IE 6 & IE 7 Z-Index Problème
http://madisonlane.businesscatalyst.com
Je vais essayer d'obtenir le div#signe-poste de siéger au-dessus de la div#bas. Cela fonctionne bien dans tous les navigateurs, sauf IE6 & IE7. Quelqu'un peut-il voir quel est le problème ici?
Aussi IE6 est de l'affichage d'une supplémentaire 198px vers le haut de la div#bas.
- Ironiquement, il fonctionne très bien avec IE8
Vous devez vous connecter pour publier un commentaire.
D'accord avec le validateur commentaire - la validation est généralement utile. Mais, si elle n'a pas d'heres quelques conseils pour z-index dans IE:
1) les éléments qui la z-index vous êtes à la manipulation doit être sur le même niveau c'est à dire. vous devriez être en paramètre le z-index de #bas et #corps
si ce n'est pas possible,
2) IE a parfois l'habitude d'appliquer le z-index correctement à moins que les éléments ou sont en l'appliquant à avoir un
position:relative
. Essayez d'appliquer la propriété de #bas et #corps (ou n ° d'orientation)laissez-moi savoir comment cela fonctionne
Darko
La plupart des réponses ici sont faux; un peu de travail, mais pas pour la raison qu'ils disent. Voici quelques explications.
C'est de cette manière z-index devrait fonctionner selon le spec:
z-index
de la valeur à n'importe quel élément; si vous ne le faites pas, la valeur par défaut estauto
position
attribut différent de la valeur par défautstatic
) avec unz-index
différente deauto
créer un nouveau empilement contexte. Empiler les contextes sont les "parts" de chevauchement; un empilement contexte est complètement au-dessus de l'autre (qui est, à chaque élément de la première est au-dessus de tout élément de la seconde) ou complètement en dessous.z-index
valeur ont que la valeur qu'un niveau de la pile, d'autres éléments hériter de leurs parents. L'élément avec le plus haut niveau de la pile est affiché sur le dessus. Lorsque deux éléments ont le même niveau de la pile, généralement celui qui est le plus loin dans l'arborescence DOM est peint sur le dessus. (Plus compliqué règles s'appliquent que si elles ont un autreposition
attribut.)En d'autres termes, lorsque deux éléments ont
z-index
, afin de décider qui sera afficher sur le dessus, vous devez vérifier si ils ont placé les parents qui ont aussiz-index
ensemble. Si ils ne sont pas, ou les parents sont communs, l'un avec le z-index supérieur gagne. S'ils le font, vous devez comparer les parents, et lesz-index
des enfants n'est pas pertinent.De sorte que le
z-index
décide comment l'élément est placé par rapport à d'autres enfants de son "empilement parent" (le plus proche de l'ancêtre avec unz-index
et uneposition
derelative
,absolute
oufixed
), mais il n'a pas d'importance lorsque l'on compare à d'autres éléments; c'est l'empilement des parentsz-index
(ou, éventuellement, laz-index
de l'empilement parent d'empilage du parent, et cetera) qui compte. Dans un document typique où vous utilisezz-index
seulement sur quelques éléments comme les menus déroulants et les pop-ups, dont aucun ne contient de l'autre, l'empilement parent de tous les éléments qui ont unez-index
est l'ensemble du document, et vous pouvez généralement obtenir loin avec la pensée de laz-index
mondial, au niveau du document de la commande.La différence fondamentale avec IE6/7, c'est que les éléments en position de démarrer de nouveaux contextes d'empilement, qu'ils ont
z-index
définie ou pas. Puisque les éléments qui vous instinctivement attribuerz-index
valeurs sont généralement en position absolue et relativement positionné parent ou d'un proche ancêtre, cela signifie que votrez-index
-ed de ne pas être comparé à tous, au lieu placé leurs ancêtres va - et, depuis ceux qui ont pas de z-index établi, l'ordre du document prévaudra.Comme une solution de contournement, vous devez savoir quels ancêtres sont en fait rapport, et d'attribuer le z-index pour eux de rétablir l'ordre que vous voulez (qui sera généralement inverser l'ordre du document). Habituellement, cela se fait en javascript - pour un menu déroulant, vous pouvez marcher à travers le menu des conteneurs ou des parent des éléments de menu, et de leur attribuer un
z-index
de 1000, 999, 998 et ainsi de suite. Une autre méthode: lorsqu'un popup ou menu déroulant devient visible, trouvez tous ses positionnée relativement ancêtres, et de leur donner uneon-top
classe qui a un très fort z-index; quand il devient invisible à nouveau, supprimer les classes.<select>
ou Flash) sont en quelque sorte en dehors du document, et il n'y a aucun moyen de la position des trucs au-dessus d'eux via z-index. Qui est normalement résolu en mettant un iframe entre eux et la fenêtre contextuelle.J'ai juste eu ce problème et de le résoudre j'ai trouvé (grâce à Quirksmode) était de donner au parent direct du nœud que vous essayez de définir un z-index de sa propre z-index qui est, à moins que le z-index du nœud que vous essayez de définir. Voici un exemple rapide qui devrait fonctionner dans IE6
#Header
plus élevé que#Content
(ce qui est probablement un élément positionné). La relation entre le z-index de#Header
et#AlwaysOnTop
n'est pas pertinent. Voir ma réponse pour plus de détails.Bienvenue, j'ai résolu le problème avec:
Me semble que vous avez quelques code HTML mal formé là-bas. J'ai essayé de comptage, et peut-être que j'ai perdu le compte de l'ouverture et la fermeture des balises, mais il ressemble à div#container n'est pas fermé. Essayez de lancer votre page par le biais d'un programme de validation (comme le HTML du W3C Validator, ou de quelque chose) et la fixation de certaines erreurs. Qui m'a aidé avec ces sortes de problèmes dans le passé. Bonne chance!
J'ai récemment eu un problème continu d'afficher un calque au-dessus de l'autre. Dans mon cas, j'ai été par programmation, la création de deux couches en Javascript, un pour diaplaying un contrôle personnalisé et un pour créer un plein écran de la couche derrière elle. FF était bien, bu IE affiche en plein écran couche toujours au-dessus de tout le reste.
Après de nombreuses chaluts sur l'interweb, essayez les suggestions de tout le monde, la seule façon que j'ai fini par obtenir ce travail était de supprimer
position:
attributs de deux couches, et de modifier lesmargin-top:
attribut jusqu'à ce que j'ai obtenu un résultat satisfaisant.Un peu de hachage, mais ça marche et ça va être bien jusqu'à ce que IE 8 trie tous les bugs......
la seule solution fiable est de mettre le haut des éléments ci-dessous dans le code, puis pousser plus les autres trucs avec le positionnement absolu.
par exemple WordPress:
mettre la navigation dans le fichier de pied de page, mais toujours à l'intérieur de la page couverture.
peut aussi apporter des avantages certains pour les moteurs de recherche, car ils peuvent directement commencer avec le contenu, sans ramper à travers le menu de la première...
Mise à JOUR:
J'ai besoin de corriger moi-même. Tout en mettant l'élément ci-dessous, puis en le poussant plus est encore le moyen le plus facile, il y a certains cas où cela n'est pas possible dans un délai raisonnable. Puis vous avez à faire en sorte que chaque élément parent a une sorte de positionnement et de certains senseful z-index. Puis le z-index devrait fonctionner à nouveau, même dans IE7.