top of page

Z-Index in CSS के बारे में नोट्स (Notes on Z-Index in CSS)

  • Writer: Siddharth Sharma
    Siddharth Sharma
  • Mar 2, 2025
  • 3 min read

1. Definition (परिभाषा)

  • Z-Index एक CSS प्रॉपर्टी है जो वेब पेज पर एलिमेंट्स (elements) के स्टैकिंग ऑर्डर (stacking order) को कंट्रोल करती है।

  • यह तय करती है कि कौन-सा एलिमेंट दूसरे एलिमेंट के आगे (front) या पीछे (back) दिखेगा, जो z-axis (गहराई) के साथ काम करता है।


2. Values (मान)

  • Auto: डिफॉल्ट वैल्यू। एलिमेंट का स्टैकिंग ऑर्डर डॉक्यूमेंट फ्लो (document flow) में उसकी पोजीशन के अनुसार तय होता है।

  • Integer (पूर्णांक): पॉजिटिव, नेगेटिव, या जीरो हो सकता है। ज्यादा वैल्यू वाला एलिमेंट कम वैल्यू वाले एलिमेंट के आगे दिखेगा।


3. Stacking Context (स्टैकिंग कॉन्टेक्स्ट)

  • Z-Index केवल उन एलिमेंट्स पर काम करता है जिनकी position प्रॉपर्टी static के अलावा कुछ और हो (जैसे relative, absolute, fixed, या sticky)।

  • एक ही स्टैकिंग कॉन्टेक्स्ट में, ज्यादा z-index वाला एलिमेंट कम z-index वाले एलिमेंट के आगे दिखेगा।

  • स्टैकिंग कॉन्टेक्स्ट बनता है जब:

    • एलिमेंट की z-index वैल्यू auto के अलावा कुछ और हो।

    • एलिमेंट की opacity 1 से कम हो।

    • एलिमेंट पर transform, filter, या perspective प्रॉपर्टी लागू हो।


4. Global vs. Local Stacking Context

  • Global (ग्लोबल): Z-index वैल्यू पूरे डॉक्यूमेंट में तुलना की जाती है।

  • Local (लोकल): Z-index वैल्यू केवल एक ही स्टैकिंग कॉन्टेक्स्ट में तुलना की जाती है। एक चाइल्ड एलिमेंट को उसके पैरेंट एलिमेंट के पीछे नहीं रखा जा सकता, भले ही चाइल्ड का z-index ज्यादा हो।


5. Common Pitfalls (आम गलतियाँ)

  • Parent-Child Relationships (पैरेंट-चाइल्ड रिलेशनशिप): अगर पैरेंट एलिमेंट ने स्टैकिंग कॉन्टेक्स्ट बना लिया है, तो चाइल्ड एलिमेंट को पैरेंट के पीछे नहीं रखा जा सकता, भले ही z-index नेगेटिव हो।

  • Overlapping Elements (ओवरलैपिंग एलिमेंट्स): अगर दो एलिमेंट्स का z-index समान है, तो HTML में जो एलिमेंट बाद में आता है, वह ऊपर दिखेगा।

  • Implicit Stacking Contexts (अप्रत्यक्ष स्टैकिंग कॉन्टेक्स्ट): opacity या transform जैसी प्रॉपर्टीज अनजाने में स्टैकिंग कॉन्टेक्स्ट बना सकती हैं, जिससे z-index का व्यवहार बदल सकता है।


6. Best Practices (सर्वोत्तम प्रथाएँ)

  • Z-index का उपयोग केवल जरूरत पड़ने पर ही करें।

  • Z-index वैल्यू को मैनेज करने के लिए एक सिस्टम बनाएं (जैसे 10 या 100 के इंक्रीमेंट में)।

  • बहुत ज्यादा z-index वैल्यू (जैसे 9999) का उपयोग न करें, क्योंकि इससे भविष्य में मेन्टेनेंस मुश्किल हो सकता है।

  • सभी ब्राउज़रों में टेस्ट करें, क्योंकि कुछ पुराने ब्राउज़र z-index को अलग तरह से हैंडल कर सकते हैं।


7. Examples (उदाहरण)

css

.box1 {
    position: relative;
    z-index: 1;
}

.box2 {

    position: absolute;

    z-index: 2; /* .box1 के आगे दिखेगा */

}

.box3 {

    position: fixed;

    z-index: 0; /* .box1 और .box2 के पीछे दिखेगा */

}

8. Debugging Z-Index Issues (Z-Index समस्याओं को डिबग करना)

  • ब्राउज़र डेवलपर टूल्स (जैसे Chrome DevTools) का उपयोग करके स्टैकिंग कॉन्टेक्स्ट और z-index वैल्यू को इंस्पेक्ट करें।

  • opacity या transform जैसी प्रॉपर्टीज से बने अनचाहे स्टैकिंग कॉन्टेक्स्ट को चेक करें।

  • सुनिश्चित करें कि सभी एलिमेंट्स की position प्रॉपर्टी static के अलावा कुछ और हो।

9. Browser Compatibility (ब्राउज़र संगतता)

  • Z-Index सभी मॉडर्न ब्राउज़रों में सपोर्टेड है।

  • Internet Explorer के पुराने वर्जन (जैसे IE6 और IE7) में z-index से जुड़ी कुछ बग्स हैं, लेकिन आजकल ये ज्यादा मायने नहीं रखते।

10. Advanced Use Cases (एडवांस्ड उपयोग)

  • Layering Multiple Elements (कई एलिमेंट्स को लेयर करना): Z-index का उपयोग मोडल्स, ड्रॉपडाउन्स, या टूलटिप्स जैसे कॉम्प्लेक्स डिज़ाइन बनाने के लिए करें।

  • Negative Z-Index (नेगेटिव Z-Index): एलिमेंट्स को उनके पैरेंट या अन्य कंटेंट के पीछे रखने के लिए उपयोग करें।

  • Combining with CSS Grid or Flexbox: Z-index का उपयोग ग्रिड या फ्लेक्स आइटम्स के स्टैकिंग ऑर्डर को कंट्रोल करने के लिए करें।

Simple Example (सरल उदाहरण)

html

<!DOCTYPE html>

<html lang="hi">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Z-Index Example</title>

    <style>

        .box {

            width: 100px;

            height: 100px;

            position: absolute;

        }

        .box1 {

            background-color: red;

            top: 50px;

            left: 50px;

            z-index: 1;

        }

        .box2 {

            background-color: blue;

            top: 80px;

            left: 80px;

            z-index: 2; /* यह बॉक्स बाकी के आगे दिखेगा */

        }

    </style>

</head>

<body>

    <div class="box box1"></div>

    <div class="box box2"></div>

</body>

</html>

Explanation (समझाइश):

  • .box1 और .box2 दोनों बॉक्स हैं जो एक-दूसरे के ऊपर हैं।

  • .box2 का z-index ज्यादा है (2), इसलिए यह .box1 के आगे दिखेगा।

इस तरह, z-index का उपयोग करके आप एलिमेंट्स को गहराई (depth) के साथ व्यवस्थित कर सकते हैं।

 

 
 
 

Comments


bottom of page