TP4 : Box Model et Positionnement CSS¶
Cours HTML/CSS 2026 – Durée : 3h30 – Enseignant : Quentin Fait
Objectifs du TP¶
Maîtriser le Box Model CSS (padding, margin, border)
Utiliser
position: relativeetposition: absoluteCréer des effets interactifs avec les pseudo-classes
Déboguer avec les DevTools
Consignes générales¶
Configuration : Créez un dossier tp4-box-model sur votre ordinateur et ouvrez-le dans votre éditeur de code.
Rappel de la structure HTML de base :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Titre de la page</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
</body>
</html>
Important : Utilisez les DevTools (F12) pour visualiser le Box Model de vos éléments.
Exercice 1 : Cartes produits avec badges¶
Fichiers : produits.html, produits.css, et 3 images
Créez une galerie de 3 produits avec des badges positionnés.
Préparation¶
Trouvez 3 images de produits (ou utilisez des images de placeholder)
Nommez-les
produit1.jpg,produit2.jpg,produit3.jpgPlacez-les dans le dossier
tp4-box-model
Partie HTML (produits.html)¶
Structure à créer :¶
Un
<h1>avec « Nos Produits »Une
<div class="products-container">contenant 3 produitsPour chaque produit, créez un
<article class="product-card">contenant :Un
<span class="badge">NOUVEAU</span>(uniquement sur les produits 1 et 2)Une
<img src="produit1.jpg" alt="Nom du produit">Un
<h3>avec le nom du produitUn
<p class="price">avec un prix (ex: « 19,99 € »)Un
<button>Ajouter au panier</button>
Partie CSS (produits.css)¶
Étape 1 : Reset de base¶
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
background-color: #f5f5f5;
padding: 40px 20px;
}
Étape 2 : Titre¶
Ciblez le <h1> et appliquez :
Alignement centré
Taille de police : 32px
Couleur :
#2c3e50Marge basse : 40px
Étape 3 : Conteneur des produits¶
Ciblez products-container et créez une grille simple avec :
display: grid;3 colonnes égales :
grid-template-columns: repeat(3, 1fr);Espacement entre les cartes :
gap: 30px;Largeur maximale : 1000px
Centrage :
margin: 0 auto;
Étape 4 : Carte produit¶
Ciblez product-card et appliquez :
Position relative (important pour le badge)
Fond blanc
Bordure : 1px solid #ddd
Coins arrondis : 8px
Ombre portée au survol (utilisez
:hover) :box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
Étape 5 : Badge « NOUVEAU »¶
Ciblez badge et positionnez-le en haut à droite :
Position absolute
Top : 10px
Right : 10px
Fond :
#e74c3cCouleur de texte : blanc
Padding : 5px 10px
Coins arrondis : 4px
Taille de police : 12px
Graisse : bold
Étape 6 : Image du produit¶
Ciblez les images dans product-card et appliquez :
Largeur : 100%
Hauteur : 200px
object-fit: cover;Coins arrondis en haut uniquement :
border-radius: 8px 8px 0 0;
Étape 7 : Titre et prix¶
Ciblez les <h3> dans product-card et appliquez :
Padding : 15px 15px 0 15px (en haut, à droite, en bas, à gauche)
Taille : 18px
Couleur :
#2c3e50
Ciblez price et appliquez :
Padding : 10px 15px
Taille : 20px
Couleur :
#27ae60Graisse : bold
Étape 8 : Bouton¶
Ciblez les boutons dans product-card et appliquez :
Largeur : 100%
Padding : 12px
Fond :
#3498dbTexte blanc
Bordure : none
Coins arrondis en bas uniquement :
border-radius: 0 0 8px 8px;Cursor : pointer
Au survol (:hover), changez le fond en #2980b9
Rendu attendu¶
3 cartes alignées avec un badge « NOUVEAU » en haut à droite sur 2 cartes, et un effet d’ombre au survol.
Livrables attendus¶
Un dossier tp4-box-model contenant :
Exercice 1 :
produits.html,produits.css, et 3 imagesExercice 2 :
navigation.html,navigation.css
Pensez à valider votre code avec le validateur W3C : https://validator.w3.org/
Critères d’évaluation¶
Box Model : utilisation correcte de padding et margin
box-sizing: border-box : présent dans le reset
Position :
relativesur les cartes,absolutesur les badges,fixedsur la navbarPseudo-classes : effets
:hoverfonctionnelsValidation W3C : code valide
Respect des consignes : tous les éléments demandés