Piaskownica testowania CSS z-index
Testuj i debuguj właściwość CSS z-index w izolowanym sandboxie. Wklej HTML i CSS, ustaw rozmiar i sprawdź na żywo, jak działają konteksty nakładania warstw.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Ustawienia testu z-index
<div class="demo">
<header class="topbar">
<div class="brand">Demo UI</div>
<div class="menu">
<button class="btn">Menu</button>
<div class="dropdown">
<div class="dropdown-item">Profile</div>
<div class="dropdown-item">Billing</div>
<div class="dropdown-item">Sign out</div>
</div>
</div>
</header>
<main class="content">
<div class="card">
<div class="card-title">Card A</div>
<p>Try to make the dropdown appear above the topbar.</p>
<p><strong>Hint:</strong> The content container creates a stacking context.</p>
</div>
<div class="toast">
Toast notification (z-index: 30)
</div>
</main>
</div>
/* Intentional z-index puzzle:
- The header is sticky with z-index: 20
- The dropdown has z-index: 999
- But the content wrapper creates a new stacking context using transform,
so the dropdown cannot rise above the header.
*/
.demo{
font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
background:#f6f7fb;
padding:20px;
min-height:480px;
}
.topbar{
position: sticky;
top: 0;
z-index: 20;
display:flex;
align-items:center;
justify-content:space-between;
padding:12px 14px;
border-radius:14px;
background:white;
box-shadow: 0 12px 28px rgba(0,0,0,.08);
}
.brand{ font-weight: 800; }
.menu{ position: relative; }
.btn{
border:1px solid rgba(0,0,0,.14);
background:white;
padding:8px 12px;
border-radius:12px;
font-weight:700;
}
.dropdown{
position:absolute;
right:0;
top: calc(100% + 8px);
width: 220px;
border-radius:14px;
background:white;
box-shadow: 0 18px 42px rgba(0,0,0,.18);
overflow:hidden;
/* Looks high... */
z-index: 999;
}
.dropdown-item{
padding:10px 12px;
border-bottom:1px solid rgba(0,0,0,.06);
}
.dropdown-item:last-child{ border-bottom:0; }
.content{
margin-top: 18px;
/* This transform creates a stacking context.
Try removing it, or move the dropdown outside. */
transform: translateZ(0);
}
.card{
background:white;
border-radius:16px;
padding:16px;
box-shadow: 0 10px 26px rgba(0,0,0,.06);
max-width: 520px;
}
.card-title{ font-weight: 800; margin-bottom: 6px; }
.toast{
position: fixed;
right: 24px;
bottom: 24px;
z-index: 30;
background: rgba(13,110,253,.92);
color: white;
padding: 10px 12px;
border-radius: 999px;
font-weight: 800;
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćPiaskownica CSS z-index — Zrozum warstwowość i kontekst układania elementów HTML
Interaktywna piaskownica CSS z-index to wizualne narzędzie online stworzone do łatwego zrozumienia zasad nakładania się elementów i działania kontekstu układania (stacking context).
Jak działa właściwość z-index w CSS i dlaczego bywa tak myląca?
Właściwość z-index w CSS decyduje o kolejności wyświetlania elementów wzdłuż osi Z, czyli określa, które obiekty na stronie internetowej znajdują się bliżej użytkownika (na wierzchu), a które pod spodem. Choć koncepcja ta wydaje się prosta, w praktyce przysparza wielu problemów programistom i projektantom stron. Często zdarza się, że przypisanie ogromnej wartości, np. z-index: 9999, nie powoduje przeniesienia elementu na samą górę.
Dzieje się tak, ponieważ z-index nie działa w próżni. Właściwość ta ma zastosowanie wyłącznie do elementów pozycjonowanych (czyli takich, które mają właściwość position ustawioną na relative, absolute, fixed lub sticky). Domyślne elementy o pozycji static całkowicie ignorują z-index. Drugim, znacznie poważniejszym powodem zamieszania jest koncepcja kontekstu układania.
Zrozumieć kontekst układania (Stacking Context) — klucz do opanowania z-index
Kontekst układania to trójwymiarowa struktura wewnątrz dokumentu HTML, w obrębie której elementy są układane wzdłuż osi Z. Kiedy element tworzy nowy kontekst układania, wszystkie jego elementy potomne są pozycjonowane względem niego, a nie względem całej strony. Oznacza to, że potomek z bardzo wysokim z-indexem nie wyjdzie ponad element nadrzędny o niższym priorytecie w nadrzędnym kontekście.
Można to porównać do folderów z dokumentami – niezależnie od tego, jak wysoko umieścisz kartkę wewnątrz jednego folderu, cały folder i tak może znajdować się pod innym folderem. Zrozumienie tej hierarchii jest kluczowe dla uniknięcia frustracji podczas stylowania menu nawigacyjnych, okien modalnych czy wyskakujących powiadomień tooltips.
Jak korzystać z piaskownicy CSS z-index do testowania warstw w czasie rzeczywistym?
Nasza piaskownica CSS z-index została zaprojektowana po to, aby ułatwić wizualizację tych skomplikowanych zależności. W panelu bocznym możesz dodawać wirtualne elementy HTML, zmieniać ich pozycjonowanie oraz manipulować wartościami z-index za pomocą prostych kontrolek. Główny ekran prezentuje trójwymiarowy model warstw, który można obracać pod różnymi kątami.
Dzięki temu zobaczysz dokładnie, jak zmiana właściwości jednego elementu wpływa na jego pozycję w strukturze warstwowej. Narzędzie pozwala na symulowanie tworzenia nowych kontekstów układania, co pomaga błyskawicznie zrozumieć, dlaczego dany element jest ukryty za innym, mimo teoretycznie wyższego z-indexu.
Właściwości CSS, które wpływają na z-index lub tworzą nowy kontekst układania
Wielu programistów nie zdaje sobie sprawy, że nowy kontekst układania może zostać utworzony przez właściwości CSS inne niż samo pozycjonowanie i z-index. Jednym z najczęstszych sprawców nieoczekiwanego zachowania warstw jest użycie właściwości opacity o wartości mniejszej niż 1. Zmiana przezroczystości elementu automatycznie izoluje jego dzieci w nowym kontekście.
Podobny efekt wywołuje zastosowanie filtrów (filter), efektów przekształceń geometrycznych (transform), właściwości perspective, a także nowoczesnych właściwości takich jak clip-path czy mask. Również kontenery z włączonym układem Flexbox lub CSS Grid, w połączeniu z określonymi parametrami potomków, generują nowe środowisko układania. Nasza piaskownica pozwala na eksperymentowanie ze wszystkimi tymi właściwościami.
Najczęstsze problemy z z-index i sprawdzone metody ich rozwiązywania
Klasycznym problemem jest sytuacja, w której wyskakujące menu typu dropdown chowa się pod sliderem ze zdjęciami lub pod banerem reklamowym. Najczęstszym rozwiązaniem jest zlokalizowanie wspólnego przodka obu tych elementów i upewnienie się, że kontener z menu dropdown ma wyższy z-index oraz prawidłowo zdefiniowany kontekst pozycjonowania niż kontener baneru.
Innym problemem jest tzw. "wojna na z-index", czyli bezmyślne dodawanie coraz wyższych wartości (np. 99999, 999999) w celu naprawienia layoutu. Prowadzi to do całkowitej utraty kontroli nad kodem. Dobrą praktyką jest stosowanie niskich, uporządkowanych wartości (np. 10, 20, 30) oraz dokumentowanie struktury warstwowej projektu w komentarzach kodu.
Najczęściej zadawane pytania
Dlaczego właściwość z-index nie działa na moim elemencie HTML?
Najczęstszą przyczyną jest brak ustawienia właściwości position. Z-index działa tylko dla elementów pozycjonowanych (relative, absolute, fixed, sticky). Dla elementów z domyślnym position: static jest on ignorowany.
Co to jest kontekst układania (Stacking Context) w CSS?
To niezależny obszar renderowania elementów na osi Z. Elementy potomne wewnątrz jednego kontekstu nie mogą wyjść ponad elementy z innego, wyższego kontekstu, niezależnie od tego, jak wysoki z-index im przypiszemy.
Czy wysokie wartości z-index zawsze oznaczają, że element będzie na wierzchu?
Nie, wysoka wartość z-index działa tylko w obrębie tego samego kontekstu układania. Jeśli element nadrzędny ma niski priorytet w swoim kontekście, jego dzieci również znajdą się pod elementami z innych, wyższych kontekstów.
Jakie właściwości CSS (oprócz z-index) tworzą nowy kontekst układania?
Nowy kontekst układania tworzą m.in. właściwości: opacity (mniejsze niż 1), transform (np. translate), filter, perspective, clip-path, mask oraz niektóre konfiguracje flexboxa i css grid.
Jak piaskownica z-index pomaga w debugowaniu kodu CSS?
Narzędzie pozwala na wizualną prezentację warstw w przestrzeni trójwymiarowej. Możesz w nim odtworzyć strukturę HTML swojej strony i sprawdzić, które właściwości CSS powodują powstawanie nowych kontekstów układania.