Geek Slack

Introduction to CSS
    About Lesson



    CSS Layout – The z-index Property


    CSS Layout – The z-index Property

    The z-index property specifies the stack order of an element. An element with a greater stack order is always in front of an element with a lower stack order.

    1. Understanding z-index

    The z-index property only works on positioned elements (position: absolute, position: relative, position: fixed, or position: sticky).

    Example:

    <div class="box box1">Box 1 (z-index: 1)</div>
    <div class="box box2">Box 2 (z-index: 2)</div>
    <div class="box box3">Box 3 (z-index: 3)</div>
    
    <style>
    .box {
        position: absolute;
        width: 150px;
        height: 150px;
        margin: 10px;
        padding: 20px;
    }
    .box1 {
        top: 50px;
        left: 50px;
        background-color: #ffccbc;
        z-index: 1;
    }
    .box2 {
        top: 100px;
        left: 100px;
        background-color: #b3e5fc;
        z-index: 2;
    }
    .box3 {
        top: 150px;
        left: 150px;
        background-color: #dcedc8;
        z-index: 3;
    }
    </style>
    Box 1 (z-index: 1)
    Box 2 (z-index: 2)
    Box 3 (z-index: 3)

    2. Default Stack Order

    If two positioned elements overlap without specifying the z-index, the element that appears later in the HTML code will be displayed on top.

    Example:

    <div class="box" style="position: absolute; top: 200px; left: 200px; background-color: #ffe0b2;">Box without z-index</div>
    <div class="box" style="position: absolute; top: 250px; left: 250px; background-color: #c8e6c9;">Another box without z-index</div>
    
    <style>
    .box {
        width: 150px;
        height: 150px;
        margin: 10px;
        padding: 20px;
        position: absolute;
    }
    </style>
    Box without z-index
    Another box without z-index

    3. Using z-index in Complex Layouts

    The z-index property is useful for layering elements in complex layouts, such as dropdown menus, modals, and overlays.

    Example:

    <div class="box" style="position: relative; z-index: 1; background-color: #b2dfdb;">Relative positioned box with z-index 1</div>
    <div class="box" style="position: absolute; top: 300px; left: 300px; z-index: 2; background-color: #ffab91;">Absolute positioned box with z-index 2</div>
    
    <style>
    .box {
        width: 150px;
        height: 150px;
        margin: 10px;
        padding: 20px;
    }
    </style>
    Relative positioned box with z-index 1
    Absolute positioned box with z-index 2

    Conclusion

    The z-index property is a powerful tool in CSS for controlling the stacking order of elements. By understanding and using the z-index property effectively, you can create complex and visually appealing layouts with overlapping elements.