Chapitre 6 : Positionnement et affichage
Maîtrisez les différentes techniques de positionnement et d'affichage des éléments en CSS.
1. La propriété display
Contrôle la façon dont un élément est affiché dans le flux du document.
block: l'élément occupe toute la largeur (ex :<div>)inline: l'élément est intégré dans une ligne (ex :<span>)inline-block: hybride, commeinlinemais acceptewidth/heightnone: masque complètement l'élément
p {
display: inline-block;
}
2. La propriété position
Détermine le mode de positionnement d'un élément dans la page.
static(par défaut) : flux normalrelative: positionné par rapport à sa position normaleabsolute: positionné par rapport à l'élément parent le plus proche en positionnéfixed: positionné par rapport à la fenêtresticky: reste fixe quand on fait défiler (selon un seuil)
Exemple :
.bloc {
position: absolute;
top: 50px;
left: 100px;
}
4. Affichage et centrage
4.1 Centrer horizontalement un bloc
div {
width: 300px;
margin: 0 auto;
}
4.2 Centrer verticalement avec flexbox
.container {
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
}
5. Visibilité
visibility permet de masquer un élément sans le retirer du flux :
visiblehidden
.menu {
visibility: hidden;
}
6. Bonnes pratiques
- Utiliser
relativepour les décalages simples - Préférer
flexboxpour centrer plutôt que du positionnement complexe - Ajouter un
position: relativeau parent d'un élément enabsolute
7. À éviter
- Utiliser
position: absolutesans parent positionné - Multiplier les
z-indexsans gestion claire - Utiliser
display: nonepour cacher des éléments accessibles au clavier (préférervisibility)
8. Exercice pratique
Objectif : Positionner une étiquette "Promo" sur un bloc produit.
Consignes :
- Créer une
<div class="produit">contenant une image et une étiquette promo - Utiliser
position: relativesur le conteneur - Utiliser
position: absolutepour placer l'étiquette en haut à droite
Exemple CSS :
.produit {
position: relative;
width: 250px;
}
.promo { position: absolute; top: 10px; right: 10px; background: red; color: white; padding: 0.2em 0.5em; font-size: 0.9em; }
.promo { position: absolute; top: 10px; right: 10px; background: red; color: white; padding: 0.2em 0.5em; font-size: 0.9em; }
HTML :
<div class="produit">
<img src="produit.jpg" alt="Produit">
<div class="promo">Promo</div>
</div>
9. À retenir
displaydéfinit le type d'affichage (block, inline...)positionpermet de sortir un élément du flux normal- Le positionnement est essentiel pour créer des interfaces fluides