L'índex Z és una propietat de CSS que controla l'ordre de superposició dels elements posicionats en una pàgina web. Aquesta propietat és especialment útil quan es treballa amb elements que es superposen, com ara finestres emergents, menús desplegables o capes de contingut.
Conceptes Clau
- Propietat
z-index
: Defineix l'ordre de superposició d'un element. - Elements posicionats: Només els elements amb una propietat de posició diferent de
static
poden tenir unz-index
. - Context de superposició: Cada element amb una propietat de posició diferent de
static
crea un nou context de superposició.
Sintaxi
valor
: Pot ser un número positiu, negatiu o zero. Els valors més alts es mostren per sobre dels valors més baixos.
Exemples Pràctics
Exemple 1: Elements amb Diferents z-index
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exemple d'Índex Z</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: 70px; left: 70px; z-index: 2; } .box3 { background-color: green; top: 90px; left: 90px; z-index: 3; } </style> </head> <body> <div class="box box1"></div> <div class="box box2"></div> <div class="box box3"></div> </body> </html>
En aquest exemple, la caixa verda (box3
) es mostrarà per sobre de la caixa blava (box2
), que al seu torn es mostrarà per sobre de la caixa vermella (box1
).
Exemple 2: Elements amb el Mateix z-index
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exemple d'Índex Z</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: 70px; left: 70px; z-index: 1; } </style> </head> <body> <div class="box box1"></div> <div class="box box2"></div> </body> </html>
En aquest cas, com que ambdues caixes tenen el mateix z-index
, l'ordre de superposició es determinarà per l'ordre en què apareixen en el codi HTML. La caixa blava (box2
) es mostrarà per sobre de la caixa vermella (box1
).
Exercicis Pràctics
Exercici 1: Crear Elements Superposats
Crea tres elements div
amb diferents colors i utilitza z-index
per controlar l'ordre de superposició. Assegura't que cada element tingui una posició diferent de static
.
Solució
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exercici d'Índex Z</title> <style> .box { width: 100px; height: 100px; position: absolute; } .box1 { background-color: yellow; top: 50px; left: 50px; z-index: 3; } .box2 { background-color: purple; top: 70px; left: 70px; z-index: 2; } .box3 { background-color: orange; top: 90px; left: 90px; z-index: 1; } </style> </head> <body> <div class="box box1"></div> <div class="box box2"></div> <div class="box box3"></div> </body> </html>
Exercici 2: Crear un Menú Desplegable
Crea un menú desplegable que es mostri per sobre del contingut principal utilitzant z-index
.
Solució
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exercici de Menú Desplegable</title> <style> .menu { width: 200px; height: 50px; background-color: #333; color: white; position: relative; } .dropdown { display: none; position: absolute; top: 50px; left: 0; width: 200px; background-color: #444; z-index: 10; } .menu:hover .dropdown { display: block; } </style> </head> <body> <div class="menu"> Menú <div class="dropdown"> <p>Opció 1</p> <p>Opció 2</p> <p>Opció 3</p> </div> </div> </body> </html>
Errors Comuns i Consells
- No establir
position
: Recorda que la propietatz-index
només funciona amb elements que tenen una propietat de posició diferent destatic
. - Context de superposició: Cada element posicionat crea un nou context de superposició. Això vol dir que els
z-index
dels elements fills es comparen dins del seu propi context de superposició, no amb elements fora d'aquest context.
Conclusió
La propietat z-index
és una eina poderosa per controlar l'ordre de superposició dels elements en una pàgina web. Comprendre com funciona i com utilitzar-la correctament és essencial per crear dissenys complexos i interactius. Amb els exemples i exercicis proporcionats, hauríeu de tenir una bona comprensió de com aplicar z-index
en els vostres projectes.
Domini del CSS: De Principiant a Avançat
Mòdul 1: Introducció al CSS
- Què és el CSS?
- Sintaxi i Selectors de CSS
- Com Afegir CSS a HTML
- Propietats Bàsiques de CSS
- Colors en CSS
- Unitats i Mesures en CSS
Mòdul 2: Estilització de Text i Fonts
- Propietats de Text
- Propietats de Fonts
- Integració de Google Fonts
- Alineació i Espaiat de Text
- Decoració i Transformació de Text
Mòdul 3: Model de Caixa i Disseny
- Comprendre el Model de Caixa
- Marge i Farciment
- Vora i Contorn
- Amplada i Alçada
- Dimensionament de Caixa
- Propietat de Visualització de CSS
Mòdul 4: Posicionament i Flotació
- Propietat de Posició de CSS
- Posicionament Estàtic, Relatiu, Absolut i Fix
- Flotació i Neteja de CSS
- Crear Dissenys amb Flotació
- Índex Z de CSS
Mòdul 5: Flexbox
- Introducció a Flexbox
- Propietats del Contenidor Flex
- Propietats dels Elements Flex
- Crear Dissenys amb Flexbox
- Disseny Responsiu amb Flexbox
Mòdul 6: CSS Grid
- Introducció a CSS Grid
- Propietats del Contenidor Grid
- Propietats dels Elements Grid
- Crear Dissenys amb CSS Grid
- Disseny Responsiu amb CSS Grid
Mòdul 7: Tècniques Avançades de CSS
Mòdul 8: Disseny Responsiu
- Introducció al Disseny Responsiu
- Consultes de Mitjans
- Tipografia Responsiva
- Imatges Responsives
- Disseny Mobile-First
Mòdul 9: Preprocessadors i Frameworks
- Introducció als Preprocessadors de CSS
- Conceptes Bàsics de Sass
- Conceptes Bàsics de Less
- Introducció als Frameworks de CSS
- Ús de Bootstrap
Mòdul 10: Millors Pràctiques i Optimització
- Millors Pràctiques de CSS
- Organització del Codi CSS
- Minificació de CSS
- Optimització del Rendiment de CSS
- Depuració de CSS