Valeur de la propriété CSS position: static
position: staticest la valeur par défaut de la propriété de positionnement CSS.
Lorsque la valeur d'un élémentpositionest définie surstaticlorsque l'élément suivra leflux normaldu document, arranger,non affecté top、right、bottom、leftetz-indexl'influence de propriétés de positionnement telles que.
En d'autres termes,staticsignifie qu'aucun positionnement spécial n'est appliqué ; l'élément reste simplement là où il se trouve naturellement.
Définitions de mots:staticDu latinstaticus, signifiant « stationnaire, immobile », indique que l'élément reste dans sa position d'origine.
Syntaxe de base
position: staticest la valeur la plus simple et la plus basique de la propriété de positionnement CSS.
/* 语法 */
position: static;
/* 实际示例 */
.box {
position: static;
}
Description de la propriété
| Valeur de la propriété | Description |
|---|---|
static |
La valeur par défaut ; les éléments sont positionnés selon le flux normal du document et ne sont pas affectés par les propriétés de positionnement. |
Effet des propriétés de positionnement associées sur static
| Propriété | Effet sur les éléments static |
|---|---|
top |
Invalide, ne produit aucun effet de positionnement |
right |
Invalide, ne produit aucun effet de positionnement |
bottom |
Invalide, ne produit aucun effet de positionnement |
left |
Invalide, ne produit aucun effet de positionnement |
z-index |
Invalide, impossible de définir manuellement l'ordre d'empilement |
Exemple
Comprenons à travers des exemplesposition: staticLe comportement.
Exemple 1 : static est la méthode de positionnement par défaut.
Même s'il n'est pas explicitement définiposition: static, les éléments sont positionnés en static par défaut. Comparons :
Exemple
<html>
<head>
<style>
/* Styles du conteneur : définir l'arrière-plan et le padding pour faciliter l'observation */
.container {
padding: 20px;
background-color: #f5f5f5;
border: 2px solid #ddd;
}
/* Trois blocs div, la valeur par défaut est le positionnement static */
.box {
padding: 15px;
margin: 10px 0;
background-color: #3498db;
color: white;
border-radius: 4px;
}
/* La deuxième boîte tente de se positionner en utilisant la propriété top (non valide pour static) */
.box-2 {
position: static; /* Une déclaration explicite est également static */
top: 100px; /* Cette propriété n'aura aucun effet */
}
</style>
</head>
<body>
<div class="container">
<div class="box">Première boîte (static par défaut)</div>
<div class="box box-2">Deuxième boîte (static explicite + top:100px)</div>
<div class="box">Troisième boîte (static par défaut)</div>
</div>
</body>
</html>
Description de l'effet :
vous constaterez que la deuxième boîte ne le fait pas à cause detop: 100pxdescendre. C'est parce questaticles éléments positionnés ignorent complètementtop、right、bottom、leftces propriétés de positionnement.
Exemple montrant z-index
Dans le flux normal du document, l'ordre d'empilement des éléments est déterminé par leur ordre dans le document HTML.z-indexNous ne pouvons pas utiliser z-index pour modifier cet ordre :
Exemple
<html>
<head>
<style>
.container {
position: relative; /* défini comme référence */
height: 150px;
background-color: #f0f0f0;
}
.box {
width: 100px;
height: 100px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: bold;
}
/* trois boîtes apparaissent en séquence */
.box-1 {
background-color: #e74c3c; /* rouge */
position: static; /* positionnement par défaut */
z-index: 999; /* invalide ! */
}
.box-2 {
background-color: #2E7DCC; /* vert */
position: static;
margin-top: -30px; /* créer un chevauchement avec une marge négative */
margin-left: 60px;
}
.box-3 {
background-color: #9b59b6; /* violet */
position: static;
margin-top: -30px;
margin-left: 120px;
}
</style>
</head>
<body>
<div class="container">
<div class="box box-1">Boîte 1 (z-index:999)</div>
<div class="box box-2">Boîte 2</div>
<div class="box box-3">Boîte 3</div>
</div>
<p>Même si la Boîte 1 est définie sur z-index: 999, comme elle est positionnée de manière statique, z-index n'a aucun effet.</p>
<p>L'ordre d'empilement final reste le suivant : les éléments ultérieurs sont au-dessus (la Boîte 3 est la plus haute, la Boîte 1 est la plus basse).</p>
</body>
</html>
Cas d'utilisation
Bien queposition: staticIl semble "ne rien faire", mais il est utile dans les scénarios suivants :
Scénario 1 : Réinitialiser le positionnement
Lorsque vous devez annuler un effet de positionnement précédemment défini, vous pouvez définirpositionRevenir en arrièrestatic:
/* 之前可能是 relative、absolute ou fixed */
.sidebar {
position: fixed;
top: 0;
}
/* 现在需要取消固定定位,恢复正常布局 */
.sidebar {
position: static; /* 移除固定定位效果 */
}
Scénario 2 : comme référence pour les éléments enfants positionnés.
Bien questaticlui-même n'est pas positionné, mais il peut servir decontexte de positionnementde la "référence" :
/* 父元素设置为 relative,虽然它自己可能是 static */
.parent {
position: relative; /* 创建新的定位上下文 */
}
/* 子元素 absolute 会相对于这个 parent 定位 */
.child {
position: absolute;
top: 10px;
left: 10px;
}
Scénario 3 : débogage et tests
Pendant le développement, si vous ne savez pas pourquoi un élément est positionné, vous pouvez d'abord le remettre àstaticpour diagnostiquer :
.debug-element {
position: static; /* 临时设为 static 看原始位置 */
}
Notes
Idées fausses courantes :De nombreux débutants essaieront d'utiliser
top: 0、left: 0des propriétés comme celles-ci pour "réinitialiser" l'élément dans le coin supérieur gauche, mais ces propriétés n'ont aucun effet surstaticles éléments du tout. Si vous avez besoin d'un tel effet, vous devriez utiliserrelative、absoluteoufixedle positionnement.
Comparaison avec d'autres valeurs de positionnement
| valeur de position | S'il est hors du flux du document | S'il est affecté par top/right/bottom/left | Prend en charge le z-index |
|---|---|---|---|
static |
Non, conserve la mise en page normale | non | non |
relative |
Non, mais il peut être décalé | Oui, décalé par rapport à sa position d'origine | Oui |
absolute |
Oui, en dehors du flux du document | Oui, par rapport à l'ancêtre positionné le plus proche | Oui |
fixed |
Oui, en dehors du flux du document | Oui, positionné par rapport à la fenêtre d'affichage | Oui |
sticky |
Oui, fixé après avoir défilé jusqu'au seuil | Oui, définit la position du seuil | Oui |
Résumé
position: staticest la base du positionnement CSS ; comprendre son comportement est essentiel pour maîtriser les autres méthodes de positionnement.
Retenez les points clés suivants :
staticOuipositionLa valeur par défaut de la propriétéstaticLes éléments se disposent selon le flux normal du documenttop、right、bottom、leftpaire de propriétésstaticélémentInvalidez-indexpaire de propriétésstaticélémentInvalide- est couramment utilisé pour réinitialiser le positionnement ou comme base de référence pour le contexte de positionnement.
autres extensions