zIndex property
Sets or retrieves the stacking order of positioned objects.
Syntax
Integer value = object.put_zIndex(Variant v);Integer value = object.get_zIndex(Variant* vOrder);
Property values
Type: VARIANT
auto (auto)
Default. String that specifies the stacking order of the positioned objects based on the order in which the objects appear in the HTML source.
order (order)
Integer that specifies the position of the object in the stacking order.
String format
auto |order
CSS information
Applies To | All elements |
Media | visual |
Inherited | no |
Initial Value | auto |
Remarks
Positive IHTMLCSSStyleDeclaration::zIndex values are positioned above a negative (or lesser value) IHTMLCSSStyleDeclaration::zIndex. Two objects with the same IHTMLCSSStyleDeclaration::zIndex are stacked according to source order. A positive value positions the element above text that has no defined IHTMLCSSStyleDeclaration::zIndex, and a negative value positions it below.
The IHTMLCSSStyleDeclaration::zIndex property only applies to objects that have the IHTMLCSSStyleDeclaration::position property set to relative or absolute.
The property does not apply to windowed controls, such as select objects.
Input from pointing devices, such as a mouse, does not penetrate through overlapping elements even if the elements are not visible. This is also true for positioned elements with a negative z-index unless:
- The parent is a scrolling container (that is, its IHTMLCSSStyleDeclaration::overflow property is set to auto or scroll).
- The parent is positioned (that is, its IHTMLCSSStyleDeclaration::position property is set to absolute, relative, or fixed).
As of Microsoft Internet Explorer 5.5, the iframe object is windowless and supports the IHTMLCSSStyleDeclaration::zIndex property. In earlier versions of Windows Internet Explorer, the iframe object is windowed and, like all windowed controls, ignores the IHTMLCSSStyleDeclaration::zIndex property. If you maintain Web pages that were designed for earlier versions of Internet Explorer that do not support the IHTMLCSSStyleDeclaration::zIndex property, you might want to redesign the pages, especially if the pages contain iframe objects that are stacked on top of windowed controls, such as select objects. You can use the IHTMLCSSStyleDeclaration::visibility attribute to hide windowed controls that you want an iframe object to overlap.
As of Windows Internet Explorer 7, the select property is windowless and can make use of the IHTMLCSSStyleDeclaration::zIndex attribute and the IHTMLCSSStyleDeclaration::zIndex property.
Windows Internet Explorer 8 and later. When you access a property that has not been explicitly set, Internet Explorer returns the default value of the property. The default value of the IHTMLCSSStyleDeclaration::zIndex property for the currentStyle object depends on the document compatibility mode used to display the Web page. When a page is displayed in IE8 Standards mode, the default value is auto
. The default value is 0
in IE7 Standards mode and an empty string (""
) in IE5 (Quirks) mode. Applications that rely on specific default values for the IHTMLCSSStyleDeclaration::zIndex property of the currentStyle object should be modified to take the document compatibility mode into account.
You can use the IHTMLCSSStyleDeclaration::zIndex property on Grid items. While the IHTMLCSSStyleDeclaration::zIndex property normally only applies to objects that have the IHTMLCSSStyleDeclaration::position property not set to static, the IHTMLCSSStyleDeclaration::zIndex property applies to Grid items even when the IHTMLCSSStyleDeclaration::position property is set to static.
Examples
The following example shows how to use the IHTMLCSSStyleDeclaration::zIndex property to change the display of overlapping objects. The example shows two pairs of overlapping boxes, one red box and one light blue box. In the first pair of boxes, the light blue box has a higher IHTMLCSSStyleDeclaration::zIndex value so it overlaps the red box. In the second pair of boxes, the red box has the higher IHTMLCSSStyleDeclaration::zIndex value so it overlaps the light blue box.
div {
position: absolute;
text-align: center;
width: 120px;
height: 100px;
font-family: sans-serif;
}
.redbox1 {
background-color: red;
top: 20px;
left: 20px;
z-index: -1;
}
.bluebox1 {
background-color: lightblue;
top: 50px;
left: 40px;
z-index: 1;
}
.redbox2 {
background-color: red;
top: 20px;
left: 180px;
z-index: 1;
}
.bluebox2 {
background-color: lightblue;
top: 50px;
left: 200px;
z-index: -1;
}
<body>
<div class="redbox1">Lorem ipsum dolor sit amet, consectetuer adipiscing elit...</div>
<div class="bluebox1">Lorem ipsum dolor sit amet, consectetuer adipiscing elit...</div>
<div class="redbox2">Lorem ipsum dolor sit amet, consectetuer adipiscing elit...</div>
<div class="bluebox2">Lorem ipsum dolor sit amet, consectetuer adipiscing elit...</div>
</body>
The following image shows the result:
Requirements
Minimum supported client |
Windows XP |
Minimum supported server |
Windows Server 2003 |
Header |
Mshtml.h |
IDL |
Mshtml.idl |
DLL |
Mshtml.dll |