The z-index CSS property sets the z-order of a positioned element and its descendants or flex and grid items. Overlapping elements with a larger z-index cover those with a smaller one.
z-index
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Try it
z-index: auto;
z-index: 1;
z-index: 3;
z-index: 5;
z-index: 7;
<section class="default-example container" id="default-example"> <div id="example-element">Change my z-index</div> <div class="block blue position1">z-index: 6</div> <div class="block blue position2">z-index: 4</div> <div class="block blue position3">z-index: 2</div> <div class="block red position4">z-index: auto</div> <div class="block red position5">z-index: auto</div> <div class="block red position6">z-index: auto</div> </section>
#example-element {
top: 15px;
left: 15px;
width: 180px;
height: 230px;
position: absolute;
/* center the text so it is visible even when z-index is set to auto */
line-height: 215px;
font-family: monospace;
background-color: #fcfbe5;
border: solid 5px #e3e0a1;
z-index: auto;
color: black;
}
.container {
display: inline-block;
width: 250px;
position: relative;
}
.block {
width: 150px;
height: 50px;
position: absolute;
font-family: monospace;
color: black;
}
.blue {
background-color: #e5e8fc;
border: solid 5px #112382;
/* move text to the bottom of the box */
line-height: 55px;
}
.red {
background-color: #fce5e7;
border: solid 5px #e3a1a7;
}
.position1 {
top: 0;
left: 0;
z-index: 6;
}
.position2 {
top: 30px;
left: 30px;
z-index: 4;
}
.position3 {
top: 60px;
left: 60px;
z-index: 2;
}
.position4 {
top: 150px;
left: 0;
z-index: auto;
}
.position5 {
top: 180px;
left: 30px;
z-index: auto;
}
.position6 {
top: 210px;
left: 60px;
z-index: auto;
}
For a positioned box (that is, one with any position other than static), the z-index property specifies:
- The stack level of the box in the current stacking context.
- Whether the box establishes a local stacking context.
Syntax
/* Keyword value */ z-index: auto; /* <integer> values */ z-index: 0; z-index: 3; z-index: 289; z-index: -1; /* Negative values to lower the priority */ /* Global values */ z-index: inherit; z-index: initial; z-index: revert; z-index: revert-layer; z-index: unset;
The z-index property is specified as either the keyword auto or an <integer>.
Values
auto-
The box does not establish a new local stacking context. The stack level of the generated box in the current stacking context is
0. <integer>-
This
<integer>is the stack level of the generated box in the current stacking context. The box also establishes a local stacking context. This means that the z-indexes of descendants are not compared to the z-indexes of elements outside this element.
Formal definition
| Initial value | auto |
|---|---|
| Applies to | positioned elements |
| Inherited | no |
| Computed value | as specified |
| Animation type | an integer |
| Creates stacking context | yes |
Formal syntax
Examples
Visually layering elements
HTML
<div class="wrapper"> <div class="dashed-box">Dashed box</div> <div class="gold-box">Gold box</div> <div class="green-box">Green box</div> </div>
CSS
.wrapper {
position: relative;
}
.dashed-box {
position: relative;
z-index: 1;
border: dashed;
height: 8em;
margin-bottom: 1em;
margin-top: 2em;
}
.gold-box {
position: absolute;
z-index: 3; /* put .gold-box above .green-box and .dashed-box */
background: gold;
width: 80%;
left: 60px;
top: 3em;
}
.green-box {
position: absolute;
z-index: 2; /* put .green-box above .dashed-box */
background: lightgreen;
width: 20%;
left: 65%;
top: -25px;
height: 7em;
opacity: 0.9;
}
Result
Specifications
| Specification |
|---|
| Cascading Style Sheets Level 2 # z-index |
Browser compatibility
| Desktop | Mobile | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
z-index |
1 | 12 | 1 | 4 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
auto |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
negative_values |
1 | 12 | 3 | 4 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
See also
- CSS
positionproperty - Understanding CSS z-indexes
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/z-index