CSS position z-index property

CSS position z-index Properties

CSS z-index property

CSS The z-index property controls the stacking order of overlapping elements in the same stacking context on a web page. Elements with higher z-index values ​​appear in front of elements with lower values.

The following diagram illustrates a reference for stacking order layout:

CSS position z-index property


The z-index property can be used with positioned elements nested within other positioned elements.

Syntax

CSS allows you to set the z-index property of an element in a variety of ways. Let’s examine all the possible syntaxes available for setting the z-index of an element.

Keyword Value

Default value. The stacking order is the same as the parent element.

z-index: auto; 

Integer Value

A positive or negative integer. It sets the stack level of an element to the given value. Lower values ​​will have a lower priority, and the element will appear behind other elements.

z-index: 0; 
z-index: 5; 
z-index: 100; 
z-index: -1; 

Applies to

All positioned elements.

DOM Syntax

object.style.zIndex = "2"; 

CSS z-index auto

CSS z-index: auto Sets an element’s z-index to the stacking order of its parent. This is the default value for the z-index property.

Example

This is an example –

<html> 
<head> 
<style> 
.box1 { 
position: absolute; 
height: 200px; 
width: 280px; 
background-color: #f0baba; 
z-index: auto; 
text-align: center; 
padding: 3px; 
left: 10px; 
top: 10px; 
} 
.box2 { 
position: absolute; 
height: 120px; 
width: 200px; 
background-color: #eae98f; 
z-index: 1; text-align: center; 
padding: 5px; 
margin: 20px; 
left: 30px; 
top: 30px; 
} 
p { 
margin-top: 250px; 
} 
</style> 
</head> 
<body> 
<p>The element with z-index value of auto appears behind the element with the z-index value of 1.</p> 
<div class="box1"> 
<span>CSS z-index: auto</span> 
<div class="box2"> 
<span>CSS z-index: 1</span> 
</div> 
</div> 

</body> 
</html>

CSS z-index – Positive Integers

The CSS z-index property can have positive integer values. Elements with higher integer values ​​appear above elements with lower values ​​in the stacking order.

Example

Here is an example –

<html> 
<head> 
<style> 
.box1 { 
position: absolute; 
height: 200px; 
width: 280px; 
background-color: #f0baba; 
z-index: 1; 
text-align: center; 
padding: 3px; 
left: 10px; 
top: 10px; 
} 
.box2 { 
position: absolute; 
height: 140px; 
width: 220px; 
background-color: #eae98f; 
z-index: 2; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 30px; 
top: 30px; 
} 
.box3 { 
position: absolute; 
height: 90px; 
width: 160px; 
background-color: #b7c8ae; 
z-index: 3; 
text-align: center; 
padding: 5px; 
margin: 20px; 
left: 50px; 
top: 50px; 
} 
p { 
margin-top: 250px; 
} 
</style> 
</head> 
<body> 
<p>The element with z-index value of 1 appears behind the element with the z-index value of 2 and 3.</p> 
<div class="box1"> 
CSS z-index: 1 
</div> 
<div class="box2"> 
CSS z-index: 2 
</div> 
<div class="box3">
CSS z-index: 3
</div>

</body>

</html>

CSS z-index – Negative Integers

You can also use negative integer values ​​to set the z-index property. Elements with a negative z-index value will appear below elements with a higher z-index value.

Example

Here is an example –

<html> 
<head> 
<style> 
.box1 { 
position: absolute; 
height: 200px; 
width: 280px; 
background-color: #f0baba; 
z-index: -3; 
text-align: center; 
padding: 3px; 
left: 10px; 
top: 10px; 
} 
.box2 { 
position: absolute; 
height: 140px; 
width: 220px; 
background-color: #eae98f; 
z-index: -2; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 30px; 
top: 30px; 
} 
.box3 { 
position: absolute; 
height: 90px; 
width: 160px; 
background-color: #b7c8ae; 
z-index: -1; 
text-align: center; 
padding: 5px; 
margin: 20px; 
left: 50px; 
top: 50px; 
} 
p { 
margin-top: 250px; 
} 
</style> 
</head> 
<body> 
<p>The element with z-index value of -3 appears behind the element with the z-index value of -2 and -1.</p> 
<div class="box1"> 
CSS z-index: -3 
</div> 
<div class="box2"> 
CSS z-index: -2 
</div> 
<div class="box3">
CSS z-index: -1
</div>

</body>

</html>

CSS z-index property position: sticky

The following example demonstrates how to use the z-index property to control the stacking order of elements with the position: sticky property so that they remain in a fixed position when the page is scrolled −

<html> 
<head> 
<style> 
.box1 { 
position: sticky; 
height: 200px; 
width: 280px; 
background-color: #f0baba; 
z-index: 1; 
text-align: center; 
padding: 3px; 
margin: 10px; 
left: 10px; 
top: 80px; 
} 
.box2 { 
position: sticky; 
height: 140px; 
width: 220px; 
background-color: #eae98f; 
z-index: 2; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 40px; 
top: 200px; 
} 
.box3 { 
position: sticky; 
height: 90px; 
width: 160px; 
background-color: #b7c8ae; 
z-index: 3; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 70px; 
} 
</style> 
</head> 
<body> 
<p>Move cursor upward to see the effect.</p> 
<div class="box1"> 
CSS z-index: 1 
</div> 
<div class="box2"> 
CSS z-index: 2 
</div> 
<div class="box3"> 
CSS z-index: 3 
</div> 
</body> 
</html> 

CSS z-index width position: fixed

The following example demonstrates how to use the z-index property to make an element stay on top of content as the user scrolls down, even if it has the position: fixed property −

<html> 
<head> 
<style> 
.container { 
position: relative; 
height: 350px; 
} 
.box1 { 
position: fixed; 
height: 200px; 
width: 280px; 
background-color: #f0baba; 
z-index: -3; 
text-align: center; 
padding: 3px; 
left: 10px; 
top: 10px; 
} 
.box2 { 
position: fixed; 
height: 140px; 
width: 220px; 
background-color: #eae98f; 
z-index: -2; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 30px; 
top: 30px; 
} 
.box3 { 
position: fixed; 
height: 90px; 
width: 160px; 
background-color: #b7c8ae; 
z-index: -1; 
text-align: center; 
padding: 5px; 
margin: 20px; 
left: 50px; 
top: 50px; 
} 
h3 { 
margin-top: 320px; 
} 
</style> 
</head> 
<body> 
<h3>Scroll down the content to see the effect. </h3> 
<div class="container"> 
<div class="box1"> 
CSS z-index: -3 
</div> 
<div class="box2"> 
CSS z-index: -2 
</div> 
<div class="box3"> 
CSS z-index: -1 
</div> 
</div> 
</body> 
</html> 

CSS z-index width position: static

The following example shows that the z-index property has no effect on the stacking order of elements with the position: static property −

<html> 
<head> 
<style> 
.box1 { 
position: static; 
height: 200px; 
width: 280px; 
background-color: #f0baba; 
z-index: 1; 
text-align: center; 
padding: 3px; 
margin: 10px; 
left: 10px; 
top: 10px; 
} 
.box2 { 
position: static; 
height: 140px; 
width: 220px; 
background-color: #eae98f; 
z-index: 2; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 30px; 
top: 30px; 
} 
.box3 { 
position: static; height: 90px; 
width: 160px; 
background-color: #b7c8ae; 
z-index: 3; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 50px; 
top: 50px; 
} 
</style> 
</head> 
<body> 
<p>The z-index property has no effect on the stacking order of elements if the position property is set to static.</p> 
<div class="box1"> 
CSS z-index: 1 
</div> 
<div class="box2"> 
CSS z-index: 2 
</div> 
<div class="box3"> 
CSS z-index: 3 
</div> 
</body> 
</html> 

CSS z-index

Properties

The example shows that when an element has the position: relative property, the z-index property positions the element relative to its original position in the document flow.

<html> 
<head> 
<style> 
.box1 { 
position: relative; 
height: 200px; 
width: 280px; 
background-color: #f0baba; 
z-index: 1; 
text-align: center; 
padding: 3px; 
margin: 10px; 
left: 10px; 
top: 10px; 
} 
.box2 { 
position: relative; 
height: 140px; 
width: 220px; 
background-color: #eae98f; 
z-index: 2; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 30px; 
top: 30px; 
} 
.box3 { 
position: relative; 
height: 90px; 
width: 160px; 
background-color: #b7c8ae; 
z-index: 3; 
text-align: center; 
padding: 5px; 
margin: 10px; 
left: 50px; 
top: 50px; 
} 
</style> 
</head> 
<body> 
<p>The z-index property positions the element relative to its original position if position is relative.</p> 
<div class="box1"> 
CSS z-index: 1 
</div> 
<div class="box2"> 
CSS z-index: 2 
</div> 
<div class="box3"> 
CSS z-index: 3 </div> 
</body> 
</html> 

Leave a Reply

Your email address will not be published. Required fields are marked *