Bonjour, héros du code 😎💻
Aujourd’hui, nous allons créer une page produit e-commerce petite mais très accrocheuse.
Prêt(e) ? Prends ton café ☕, mets ton chapeau de code 🎩, car cette page sera non seulement fonctionnelle mais aussi stylée et interactive !
🎯 Objectifs du Projet
Avec ce projet, nous allons apprendre et appliquer :
- Créer une liste de produits avec HTML : Images, noms, prix, descriptions.
- Conception de cartes avec CSS : Effets hover, ombres, couleurs et padding pour une harmonie visuelle.
- Design responsive : Belle apparence sur les appareils mobiles également.
- Base pour JS futur : “Ajouter au panier”, filtrage, favoris, etc.
💡 Astuce : Écris un code propre et lisible à chaque étape. Si ton code est joli, tu seras heureux/se 😍
🏗️ Structure HTML : Cartes, Images et Prix
Nous utiliserons un design de carte pour chaque produit. Les cartes sont représentées avec <article> car chaque produit est un bloc de contenu indépendant.
<section class="products">
<article class="product-card">
<img src="product1.jpg" alt="Produit 1">
<h2>Produit 1</h2>
<p class="description">Ce produit est incroyable, ne le manquez pas !</p>
<p class="price">19,99 $</p>
<button>Ajouter au Panier 🛒</button>
</article>
<article class="product-card">
<img src="product2.jpg" alt="Produit 2">
<h2>Produit 2</h2>
<p class="description">Ce produit va changer votre vie ! ✨</p>
<p class="price">29,99 $</p>
<button>Ajouter au Panier 🛒</button>
</article>
<!-- Vous pouvez ajouter plus de produits -->
</section>
📌 Explications :
<section>→ Contient tous les produits.<article>→ Chaque produit comme bloc de contenu indépendant.<img>→ Image du produit ; l’attributaltest essentiel pour le SEO et l’accessibilité.<h2>→ Nom du produit, important pour le référencement.<p class="description">→ Description du produit.<p class="price">→ Prix.<button>→ Bouton “Ajouter au panier”.
💡 Astuce : Écris des textes alternatifs significatifs ; les lecteurs d’écran et le SEO te remercieront 😌
🎨 CSS pour Rendre les Cartes Accrocheuses
Nous allons animer les cartes avec CSS. Effets hover, ombres et harmonie des couleurs inclus.
body {
font-family: Arial, sans-serif;
background-color: #f9f9f9;
padding: 20px;
margin: 0;
}
.products {
display: flex;
flex-wrap: wrap;
gap: 20px;
justify-content: center;
}
.product-card {
background-color: white;
border: 1px solid #ddd;
border-radius: 10px;
padding: 15px;
width: 220px;
text-align: center;
transition: transform 0.3s, box-shadow 0.3s;
}
.product-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
.product-card img {
max-width: 100%;
border-radius: 5px;
object-fit: cover;
height: 150px;
}
.product-card h2 {
font-size: 18px;
margin: 10px 0 5px;
color: #333;
}
.product-card .description {
font-size: 14px;
color: #555;
min-height: 40px; /* Uniformiser la hauteur des cartes */
}
.product-card .price {
font-weight: bold;
margin: 10px 0;
color: #e91e63;
font-size: 16px;
}
.product-card button {
background-color: #ff4081;
color: white;
border: none;
padding: 8px 12px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s, transform 0.2s;
}
.product-card button:hover {
background-color: #e91e63;
transform: scale(1.05);
}
✨ Ce qui se passe :
- Flexbox dispose les cartes côte à côte avec des espaces.
- L’effet hover soulève les cartes et ajoute une ombre, comme un super-héros 😎
- Les boutons sont interactifs et accrocheurs, légèrement agrandis au survol.
- Les images et textes des cartes sont équilibrés, la lisibilité est maximale.
💡 Astuce : Utilise min-height pour .description pour aligner toutes les cartes sur la même ligne.
📱 Design Responsive : Mobile-Friendly
@media (max-width: 600px) {
.products {
flex-direction: column;
align-items: center;
}
.product-card {
width: 90%;
}
}
💡 Astuce : Sur les petits écrans, les cartes s’empilent verticalement, donc les utilisateurs mobiles peuvent naviguer confortablement 😍
💡 Astuces Supplémentaires et Conseils Pratiques
SEO et Accessibilité :
- N’oublie pas les textes alternatifs.
- Utilise
<h2>pour les titres des produits.
Cohérence des Couleurs et Styles :
- Stocke les couleurs de la marque avec des variables CSS :
:root {
--main-color: #e91e63;
}
.price {
color: var(--main-color);
}
button {
background-color: var(--main-color);
}
Maintenant, tu peux changer les couleurs depuis un seul endroit 💖
Intégration JS future :
- Tu peux écrire une fonction JS pour le bouton “Ajouter au panier”.
- Ajouter plus tard le filtrage ou les favoris.
Animations et Micro-Interactions :
- Utilise subtilement les effets hover et le scale des boutons pour ne pas gêner l’utilisateur.
Équilibrage des Tailles des Cartes :
- Les longues descriptions peuvent étirer les cartes ; utilise
min-heightpour équilibrer.
🏁 Résultat
Félicitations, darling 😍
- Liste de produits avec HTML ✅
- Cartes et boutons élégants et interactifs avec CSS ✅
- Effets hover et design responsive pour un look professionnel ✅
💖 Bonus : Plus tard, tu pourras ajouter des fonctionnalités JS comme “Ajouter au panier”, filtrage et favoris pour créer une vraie expérience mini e-commerce.

