Maîtriser l'index z dans CSS
Attribut Z-Index dans CSS: Un outil puissant pour contrôler l'ordre des éléments de page empiler
Cet article explore l'attribut z-index
dans CSS, qui est utilisé pour contrôler l'ordre en cascade des éléments de page. Des éléments avec des valeurs plus élevées seront affichés sur des éléments avec des valeurs plus faibles. Ceci est similaire à l'axe des x et à l'axe y sur la page contrôlant respectivement les positions horizontales et verticales des éléments, et z-index
contrôle l'ordre d'empilement des éléments sur l'axe z.
Points clés:
-
L'attribut
- dans
z-index
contrôle l'ordre d'empilement des éléments de page. Plus la valeur est élevée, plus l'élément est affiché. Il ne fonctionne que sur des éléments dont les valeurs d'attribut sontposition
,absolute
ourelative
.fixed
En définissant - sans attribuer des valeurs aux attributs
position: relative
,top
,right
,bottom
ouleft
, vous pouvez contrôler l'ordre d'empilement des éléments sans modifier leur position d'origine sur le page.
L'analyse de la valeur -
z-index
est effectuée dans son contexte d'empilement parent, ce qui signifie que même si la valeurz-index
de l'élément est élevée, l'élément peut toujours être affiché ailleurs si la valeurz-index
de son conteneur parent est faible . - Pour améliorer l'organisation et la flexibilité, il est recommandé d'utiliser un incrément de 100 pour définir la valeur
z-index
. Cette approche fournit 99 choix numériques disponibles lors de l'ajout d'une nouvelle couche entre deux couches existantes.
Ordre d'empilement par défaut
Lors de l'écriture de HTML, les éléments arrière du document seront empilés sur les éléments avant par défaut.
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
Dans cet extrait HTML, si tous les éléments sont définis pour se chevaucher, le pied de page sera empilé sur le contenu du corps, qui à son tour sera empilé sur le dessus de l'en-tête.
Les éléments peuvent être chevauchés en combinant position
attributs et top
, right
, bottom
, left
,
position
Si l'attribut absolute
de chaque élément est défini sur
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
top
Utilisez des propriétés de décalage left
et
Stack Context
position: absolute
Bien que les éléments qui se chevauchent puissent être créés à l'aide de , cela ne crée pas le contexte dite Empiler le contexte
Le contexte d'empilement peut être créé de la manière suivante:
-
L'élément
position: absolute
a les attributsrelative
ouz-index
, et la valeurauto
n'est pas . -
auto
Les éléments Flexbox ont des valeursz-index
qui ne sont pas . -
L'opacité de l'élément
opacity
( ) est inférieure à 1. -
L'attribut
transform
de l'élémentnone
est défini sur une valeur non .
La façon courante de créer et d'utiliser des contextes d'empilement est le premier, concentrons-nous dessus. <🎜>
Retournez à l'exemple précédent, nous avons trois éléments se chevauchant, mais pour le moment ils n'ont pas de valeurs z-index
.
z-index
nous permet de contrôler l'ordre d'empilement.
Si nous définissons le pied de page z-index
sur 1, le corps z-index
sur 2, et l'en-tête z-index
sur 3, l'ordre d'empilement par défaut peut être complètement inversé.
En surface, il semble simple: plus la valeur est élevée, plus la pile des éléments - donc z-index
sera toujours au-dessus de z-index: 9999
. Malheureusement, la réalité est plus compliquée que cela. z-index: 9
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
et positionnez-la à l'extérieur du coin inférieur droit, nous verrons qu'il se trouve au-dessus de la boîte verte, sous la boîte rose. site-content
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
, nous pourrions penser que pour faire apparaître cette boîte jaune sur la boîte rose, nous devons juste définir une valeur plus élevée pour z-index
. z-index
sur 4 (ci-dessus z-index
), nous ne verrons aucun changement. Les gens essaient généralement de forcer l'empilement avec de très grands nombres (comme 9999), mais cela n'a pas non plus d'effet. Vu dans la base de code, une telle valeur z-index: 3
est une odeur de code, alors essayez de l'éviter si possible. z-index
se comporte dans le contexte d'empilement. z-index
... (Le code HTML et CSS dans l'exemple MDN est omis ici parce que l'article est trop long, mais la partie clé de l'explication est conservée) ....
Tout cela peut s'expliquer par le fait que toutes les valeurs
sont analysées dans leur contexte d'empilement parent. Étant donné que la valeur du conteneur parent z-index
est supérieure à celle du pied de page, tous les éléments de positionnement dans .site-content
sont évalués dans ce contexte. z-index
.site-content
Comprenez l'ordre d'empilement des éléments dans le contexte d'empilement, vous pouvez les comparer aux enfants dans des listes ordonnées imbriquées.
Cela peut être écrit comme suit:
En-tête:
-
z-index: 5
Sujet: -
z-index: 4
Encadré 1:-
z-index: 4.6
Box 2: -
z-index: 4.1
Box 3: -
z-index: 4.3
-
-
z-index: 2
Par conséquent, même si le
de la boîte 1 est 6, son ordre de rendu est de 4.6, ce qui est encore inférieur à 5. Par conséquent, l'encadré 1 est affiché sous l'en-tête. z-index
z-index
C'était un peu déroutant au début, mais avec la pratique, cela a vraiment commencé à avoir du sens!
L'index z ne convient que pour le positionnement des éléments
Si vous souhaitez contrôler l'ordre d'empilement des éléments, vous pouvez utiliser z-index
. Cependant, position
ne prendra effet que lorsque la valeur absolute
de l'élément est relative
, fixed
ou z-index
.
Mettre des éléments avec précision avec position
est idéal pour construire des dispositions complexes ou des modèles d'interface utilisateur intéressants, mais il est souvent souhaitable de contrôler l'ordre d'empilement sans déplacer les éléments dans la position d'origine sur la page.
Si tel est le cas, vous ne pouvez définir que position: relative
mais ne fournissez aucune valeur pour top
, right
, bottom
ou left
. L'élément restera dans sa position d'origine sur la page, le flux de documents ne sera pas interrompu et la valeur z-index
prendra effet.
La valeur d'indice z négative peut être utilisée
Les éléments hydratés sont souvent utilisés pour construire des formes complexes ou des composants d'interface utilisateur. Cela signifie généralement que les éléments sont superposés les uns sur les autres et que la valeur z-index
continue d'augmenter. Pour placer un élément sous un autre élément, il a juste besoin d'avoir une valeur z-index
inférieure, qui peut être négative.
Ceci est utile lors de l'utilisation d'un pseudo-élément et souhaite le positionner derrière son contenu de l'élément parent.
En raison de la façon dont le contexte d'empilement fonctionne, si l'élément
ou doit être positionné après le contenu texte de son élément parent, une valeur négative :before
doit être définie dessus. :after
z-index
stratégie d'index z
Résumons une stratégie simple que j'ai utilisée lors de l'application de
dans mon projet.
z-index
Nous avons utilisé des incréments à un chiffre à un chiffre de la valeur
et z-index
? Vous devez modifier de nombreuses valeurs - peut-être tout au long de la base de code, ce qui peut causer des problèmes et peut provoquer des pauses CSS dans d'autres parties du site Web. z-index: 3
z-index: 4
Réglez l'index z avec 100 étapes
Lorsque vous traitez avec
, vous voyez souvent du code comme ceci:
z-index
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
!important
Au lieu d'utiliser n'importe quel nombre comme 9999, 53 ou 12, nous pouvons systématiser notre rapport
z-index
Je n'ai pas utilisé d'incréments à un chiffre de
z-index
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
Cette approche manuelle est très fiable lors de la construction d'un système, mais lorsqu'elle est utilisée en conjonction avec un préprocesseur comme SASS, il peut être rendu plus flexible.
... (La partie FAQ est omise ici car elle est plus répétitive avec la sortie précédente) ... z-index
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Si nous devons afficher la documentation à l'utilisateur directement dans l'éditeur WordPress, quelle est la meilleure façon de le faire?

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire

CSS Grid est une collection de propriétés conçues pour faciliter la mise en page qu'elle ne l'a jamais été. Comme tout, il y a un peu une courbe d'apprentissage, mais Grid est

Je vois que Google Fonts a déployé un nouveau design (tweet). Comparé à la dernière grande refonte, cela semble beaucoup plus itératif. Je peux à peine faire la différence
