Exercices HTML CSS

Exercice 8 HTML et CSS Corrigé S4

Exercice 8 : Système d'onglets (tabs) interactif

Objectif : Créer un système d'onglets interactif avec HTML, CSS, et un peu de JavaScript.

Instructions :

  • Créez une section avec plusieurs onglets (par exemple : "Accueil", "Services", "Contact").
  • Au clic sur un onglet, son contenu correspondant doit être affiché, et le contenu des autres onglets doit être masqué.
  • Utilisez CSS pour styliser les onglets et indiquer visuellement quel onglet est actif.

Points à évaluer :

  • Utilisation de JavaScript pour basculer entre les onglets.
  • Mise en œuvre d’une interface utilisateur claire et intuitive.
  • Utilisation de transitions CSS pour ajouter des effets de changement de contenu.

 

Étape 1 : Structure HTML

Nous allons commencer par créer la structure HTML des onglets et de leur contenu associé.

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Système d'Onglets Interactif</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>

    <div class="tabs">
        <button class="tablinks active" onclick="openTab(event, 'Accueil')">Accueil</button>
        <button class="tablinks" onclick="openTab(event, 'Services')">Services</button>
        <button class="tablinks" onclick="openTab(event, 'Contact')">Contact</button>
    </div>

    <div id="Accueil" class="tabcontent" style="display: block;">
        <h2>Bienvenue sur notre site</h2>
        <p>Ceci est la page d'accueil. Découvrez nos services ci-dessous.</p>
    </div>

    <div id="Services" class="tabcontent">
        <h2>Nos Services</h2>
        <p>Nous offrons une variété de services pour répondre à vos besoins.</p>
    </div>

    <div id="Contact" class="tabcontent">
        <h2>Contactez-nous</h2>
        <p>N'hésitez pas à nous contacter pour toute question.</p>
    </div>

    <script src="script.js"></script>
</body>
</html>

Étape 2 : Stylisation avec CSS

Nous allons maintenant styliser les onglets et le contenu des onglets.

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

/* Style des onglets */
.tabs {
    display: flex;
    border-bottom: 2px solid #ccc;
}

.tablinks {
    background-color: #f1f1f1;
    border: none;
    padding: 14px 20px;
    cursor: pointer;
    transition: background-color 0.3s;
    outline: none;
    flex-grow: 1;
    text-align: center;
    font-size: 18px;
    color: #333;
}

.tablinks:hover {
    background-color: #ddd;
}

.tablinks.active {
    background-color: #007BFF;
    color: white;
}

/* Style du contenu des onglets */
.tabcontent {
    display: none;
    padding: 20px;
    border: 1px solid #ccc;
    border-top: none;
    background-color: white;
    animation: fadeEffect 0.5s;
}

@keyframes fadeEffect {
    from { opacity: 0; }
    to { opacity: 1; }
}

Étape 3 : JavaScript pour la gestion des onglets

Le JavaScript est nécessaire pour gérer l'interaction des onglets. Ce script permettra de masquer tous les onglets, puis d'afficher uniquement celui qui a été cliqué.

// Fonction pour ouvrir un onglet
function openTab(evt, tabName) {
    // Masquer tous les contenus d'onglet
    var i, tabcontent, tablinks;
    tabcontent = document.getElementsByClassName("tabcontent");
    for (i = 0; i < tabcontent.length; i++) {
        tabcontent[i].style.display = "none";
    }

    // Retirer la classe "active" de tous les onglets
    tablinks = document.getElementsByClassName("tablinks");
    for (i = 0; i < tablinks.length; i++) {
        tablinks[i].className = tablinks[i].className.replace(" active", "");
    }

    // Afficher le contenu de l'onglet actuel et ajouter la classe "active" à l'onglet cliqué
    document.getElementById(tabName).style.display = "block";
    evt.currentTarget.className += " active";
}

 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.