2008-12-23 5 views
5

donc j'ai ce, à peu près:z-index se comportant pas comme je me attends

<div id="A"> 
    <ul> 
     <li id="B">foo</li> 
    </ul> 
</div> 
<div id="C"> 
    ... 
</div> 

Ceux-ci sont positionnées de telle sorte que B et C se chevauchent.

A a une z-index de 90, B a une z-index de 92, et C a une z-index de 91. Mais C se présente devant B. Que fais-je de mal? (Faites-moi savoir si plus de détails sont nécessaires.)

+0

Pouvez-vous s'il vous plaît poster la feuille de style que vous utilisez? –

+1

Merci d'avoir décomposé votre question en un cas simple et générique. Cela a rendu la réponse plus éclairante. :) –

Répondre

11

L'utilisation de z-index n'est pertinente que pour les éléments du même conteneur. Puisque B est contenu dans A, l'index z de B s'appliquera uniquement lors de la résolution d'autres éléments à l'intérieur de A. En ce qui concerne C, B et A sont rendus à z-index 90. Cependant, si C est placé dans A, alors B rendra devant.

1

Si un élément n'a pas de position: relative/position: absolu/position: style fixe, c'est la position: statique qui est le style de position par défaut pour tous les éléments.

Avec un élément qui est position: static, z-index ne fonctionne tout simplement pas. Le navigateur rendrait la pile dans l'ordre de l'élément xml et ignorerait la propriété z-index.

Pour une situation comme cela fonctionne, vous devez ajouter la position: par rapport à l'ensemble des 3 éléments, A, B, C.

Pour mieux comprendre z-index et l'empilage CSS, la tête ici: http://www.tjkdesign.com/articles/z-index/teach_yourself_how_elements_stack.asp

Questions connexes