Exercices HTML CSS

Exercice 4 HTML et CSS Corrigé S4

Exercice 4 : Carte de produit interactive avec grille CSS

Objectif : Créer une section produits en utilisant une grille CSS et des effets de survol pour rendre la carte interactive.

Instructions :

  • Créez une grille de 4 colonnes pour afficher des produits.
  • Chaque carte de produit doit inclure une image, un nom de produit, un prix et un bouton d’achat.
  • Au survol de la carte, le bouton d’achat doit apparaître avec une transition fluide.
  • Utilisez CSS Grid pour structurer la mise en page.

Points à évaluer :

  • Conception d’une mise en page fluide et responsive avec la grille CSS.
  • Utilisation de transitions CSS pour améliorer l’interaction au survol.

Étape 1 : Création de la structure HTML

Nous allons d'abord créer la section des produits avec 4 colonnes, chaque produit ayant une image, un nom, un prix et un bouton d'achat.

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Carte de produit interactive</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>

    <section class="produits">
        <div class="produit">
            <img src="https://via.placeholder.com/150" alt="Produit 1">
            <h3>Produit 1</h3>
            <p class="prix">20,00 €</p>
            <button class="achat-btn">Acheter</button>
        </div>
        <div class="produit">
            <img src="https://via.placeholder.com/150" alt="Produit 2">
            <h3>Produit 2</h3>
            <p class="prix">35,00 €</p>
            <button class="achat-btn">Acheter</button>
        </div>
        <div class="produit">
            <img src="https://via.placeholder.com/150" alt="Produit 3">
            <h3>Produit 3</h3>
            <p class="prix">50,00 €</p>
            <button class="achat-btn">Acheter</button>
        </div>
        <div class="produit">
            <img src="https://via.placeholder.com/150" alt="Produit 4">
            <h3>Produit 4</h3>
            <p class="prix">45,00 €</p>
            <button class="achat-btn">Acheter</button>
        </div>
    </section>

</body>
</html>

 

Étape 2 : Stylisation avec CSS

Ensuite, nous allons créer le style avec CSS Grid pour la mise en page et ajouter les transitions pour l'interaction au survol.

 

/* Style général */
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 20px;
    background-color: #f5f5f5;
}

/* Section produits */
.produits {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.produit {
    background-color: #fff;
    padding: 20px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.produit:hover {
    transform: translateY(-10px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}

/* Image du produit */
.produit img {
    width: 100%;
    height: auto;
    margin-bottom: 15px;
    border-radius: 8px;
}

/* Nom du produit */
.produit h3 {
    font-size: 18px;
    margin-bottom: 10px;
}

/* Prix */
.produit .prix {
    font-size: 16px;
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
}

/* Bouton d'achat */
.achat-btn {
    background-color: #007bff;
    color: #fff;
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    cursor: pointer;
    opacity: 0;
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    transition: opacity 0.3s ease;
}

/* Affichage du bouton d'achat au survol */
.produit:hover .achat-btn {
    opacity: 1;
}

/* Responsive */
@media (max-width: 768px) {
    .produits {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .produits {
        grid-template-columns: 1fr;
    }
}

 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.