Proprietatea CSS z-index
Proprietatea z-index setează ordinea de stivuire a elementelor poziționate, care decide dacă un element se află în fața sau în spatele altora.
Când elementele sunt poziționate, ele se pot suprapune. Un element poate avea o ordine de stivuire pozitivă sau negativă.
Notă: z-index funcționează doar pe elemente poziționate (position setat la absolute, relative, fixed sau sticky) și pe elementele flex.
Exemplu
O cutie cu z-index: -1 este plasată în spatele textului.
<style>, poziționează absolut o cutie colorată în colțul stânga-sus cu z-index -1 (înlocuitor pentru o imagine), astfel încât să stea în spatele textului. Adaugă un titlu și un paragraf deasupra acesteia.
Output: complete HTML page
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.bgbox {
position: absolute;
left: 0px;
top: 0px;
z-index: -1;
width: 220px;
height: 140px;
background-color: #4CAF50;
}
</style>
</head>
<body>
<h1>This is a heading</h1>
<div class="bgbox"></div>
<p>Because the box has a z-index of -1, it is placed behind the text.</p>
</body>
</html>
Un alt exemplu de z-index
Un element poziționat cu o ordine de stivuire mai mare este întotdeauna în fața celui cu o ordine de stivuire mai mică.
Exemplu
Trei cutii suprapuse sunt stivuite după z-index-ul lor: cutia gri (3) este deasupra, apoi cutia verde (2), apoi cutia neagră (1).
<style>, creează un container relativ cu trei cutii suprapuse: o black-box (z-index 1), o gray-box (z-index 3) și o green-box (z-index 2), fiecare poziționată astfel încât să se suprapună. Z-index-ul mai mare apare deasupra. Adaugă cele trei cutii în interiorul containerului.
Output: complete HTML page
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.container {
position: relative;
}
.black-box {
position: relative;
z-index: 1;
border: 2px solid black;
height: 100px;
margin: 30px;
}
.gray-box {
position: absolute;
z-index: 3;
background: lightgray;
height: 60px;
width: 70%;
left: 50px;
top: 50px;
}
.green-box {
position: absolute;
z-index: 2;
background: lightgreen;
width: 35%;
left: 270px;
top: -15px;
height: 100px;
}
</style>
</head>
<body>
<div class="container">
<div class="black-box">Black box (z-index: 1)</div>
<div class="gray-box">Gray box (z-index: 3)</div>
<div class="green-box">Green box (z-index: 2)</div>
</div>
</body>
</html>
Fără z-index
Dacă elementele poziționate suprapuse nu au z-index, ele se stivuiesc în ordinea în care apar în sursa HTML: elementele ulterioare sunt desenate deasupra.
Exemplu
Aceleași cutii fără z-index se stivuiesc în ordinea sursei.
<style>, creează un container relativ cu trei cutii suprapuse (black-box, gray-box, green-box) fără z-index, poziționate astfel încât să se suprapună. Fără z-index, ele se stivuiesc în ordinea în care apar în HTML. Adaugă cele trei cutii în interiorul containerului.
Output: complete HTML page
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.container {
position: relative;
}
.black-box {
position: relative;
border: 2px solid black;
height: 100px;
margin: 30px;
}
.gray-box {
position: absolute;
background: lightgray;
height: 60px;
width: 70%;
left: 50px;
top: 50px;
}
.green-box {
position: absolute;
background: lightgreen;
width: 35%;
left: 270px;
top: -15px;
height: 100px;
}
</style>
</head>
<body>
<div class="container">
<div class="black-box">Black box</div>
<div class="gray-box">Gray box</div>
<div class="green-box">Green box</div>
</div>
</body>
</html>
Proprietate CSS
Proprietatea acoperită în această pagină este z-index, care setează ordinea de stivuire a unui element poziționat.