Home >Web Front-end >CSS Tutorial >Why Does My Div Stacking Order Behave Differently in IE6 and 7?
Internet Explorer 6 and 7 Z-Index Issue
Problem:
In a web page with two divs, div#sign-post should appear above div#bottom, but this only occurs in browsers other than Internet Explorer (IE) 6 and 7. Additionally, IE6 displays an extra 198 pixels at the top of div#bottom.
Solution:
Understanding Z-Index in IE6/7
In most browsers, the z-index property allows elements to be stacked above or below others based on their assigned values. However, in IE6 and 7, positioned elements create new stacking contexts regardless of z-index values.
The Problem
In this case, div#sign-post has a higher z-index than div#bottom, but IE6/7 compare the stacking contexts of their parents, which in IE are created by the positioned elements themselves. Since neither div#sign-post nor div#bottom have explicitly set z-index values, document order determines their stacking, causing div#bottom to appear on top.
Workaround:
To resolve this issue, it is necessary to assign z-index values to the positioned ancestors of the affected elements.
For example, if div#parent contains div#sign-post, assign a z-index of 1000 to div#parent to place it above div#bottom.
Additional IE6 Issue
The extra 198 pixels at the top of div#bottom in IE6 is due to an internal calculation of its default margin. This issue can be resolved by explicitly setting the margin of div#bottom to 0px.
The above is the detailed content of Why Does My Div Stacking Order Behave Differently in IE6 and 7?. For more information, please follow other related articles on the PHP Chinese website!