Aller au contenu

Exercice 5 : Styliser un article de blog 🎨

🎯 Objectif

Créer un article sur le thème Pokémon avec un style fun et coloré. Vous devrez analyser le HTML fourni et appliquer les styles demandés en trouvant vous-même les sélecteurs appropriés.


📄 Le HTML (à créer)

Créez le fichier index.html avec le contenu suivant :

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Guide du Dresseur Pokémon</title>
</head>
<body>
    <article class="pokemon-guide">
        <header class="guide-header">
            <h1>Guide du Dresseur Pokémon</h1>
            <p class="intro">
                Bienvenue dans le monde merveilleux des Pokémon ! Ce guide vous aidera à devenir 
                le meilleur dresseur. Préparez vos Poké Balls et en route pour l'aventure !
            </p>
            <p class="author-info">
                Par <span class="author">Sacha Ketchum</span>                <time datetime="2025-10-28">28 octobre 2025</time>
            </p>
        </header>

        <img src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/25.png" 
             alt="Pikachu" 
             class="main-image">

        <div class="guide-content">
            <h2>Les types de Pokémon</h2>
            <p>Il existe 18 types différents de Pokémon, chacun avec ses forces et faiblesses. Comprendre ces types est essentiel pour devenir un bon dresseur et remporter des combats stratégiques. Chaque type possède des avantages contre certains types et des faiblesses face à d'autres, créant ainsi un système de combat profond et tactique qui fait la richesse de l'univers Pokémon.</p>

            <h3>Types les plus populaires</h3>
            <ul>
                <li><strong>Feu</strong> : Salamèche, Dracaufeu, Pyroli</li>
                <li><strong>Eau</strong> : Carapuce, Tortank, Aquali</li>
                <li><strong>Plante</strong> : Bulbizarre, Florizarre, Phyllali</li>
                <li><strong>Électrique</strong> : Pikachu, Raichu, Voltali</li>
            </ul>

            <p class="tip">
                💡 Conseil de pro : Gardez toujours une équipe équilibrée avec différents types 
                pour être prêt à affronter n'importe quel adversaire !
            </p>

            <h2>Les Pokémon de départ</h2>
            <p>Au début de votre aventure, vous devrez choisir votre premier Pokémon parmi trois options. Ce choix est crucial car votre Pokémon de départ vous accompagnera tout au long de votre périple et deviendra souvent votre partenaire le plus fidèle. Chaque région propose ses propres Pokémon de départ, mais le principe reste le même : un Pokémon de type Feu, un de type Eau et un de type Plante.</p>

            <h3>Kanto - Région classique</h3>
            <ol>
                <li><strong>Bulbizarre</strong> (Type Plante/Poison)</li>
                <li><strong>Salamèche</strong> (Type Feu)</li>
                <li><strong>Carapuce</strong> (Type Eau)</li>
            </ol>

            <div class="info-card">
                <h4>Le saviez-vous ?</h4>
                <p>Pikachu était initialement prévu pour évoluer en Raichu dans l'anime, mais il est resté sous sa forme de base pour rester mignon et populaire auprès des fans ! Cette décision a fait de Pikachu l'un des Pokémon les plus reconnaissables au monde et la véritable mascotte de la franchise.</p>
            </div>

            <h2>Stratégies de combat</h2>
            <p>Gagner des combats ne dépend pas seulement de la force brute de vos Pokémon, mais aussi de votre capacité à élaborer des stratégies efficaces. Un bon dresseur doit savoir anticiper les mouvements de son adversaire, connaître les faiblesses des types adverses, et utiliser les capacités de son équipe de manière optimale. La préparation avant le combat est tout aussi importante que les décisions prises pendant l'affrontement.</p>

            <ul class="strategy-list">
                <li>Connaître les faiblesses de vos adversaires</li>
                <li>Utiliser des objets au bon moment</li>
                <li>Entraîner votre équipe de manière équilibrée</li>
                <li>Apprendre les meilleures capacités</li>
            </ul>

            <h2>Ressources utiles</h2>
            <ul class="resources">
                <li><a href="#">Pokédex complet</a></li>
                <li><a href="#">Carte interactive des régions</a></li>
                <li><a href="#">Calculateur de types</a></li>
                <li><a href="#">Guide des évolutions</a></li>
            </ul>
        </div>

        <footer class="guide-footer">
            <p>
                Vous voilà prêt à débuter votre aventure ! N'oubliez jamais : l'important n'est 
                pas d'être le plus fort, mais de créer des liens avec vos Pokémon. 
                Bonne chance, futur Maître Pokémon ! ⚡
            </p>
            <p class="copyright">© 2025 - Guide du Dresseur Pokémon</p>
        </footer>
    </article>
</body>
</html>

🎨 Le CSS (à créer)

Créez le fichier css/style.css et complétez les consignes suivantes.

⚠️ Important :

  • Analysez bien le HTML pour identifier les éléments à styliser
  • Trouvez les bons sélecteurs (classes, descendants, enfants, pseudo-classes...)
  • Cherchez comment réaliser chaque effet demandé

📍 Étape 1 : Reset et base

1.1 Reset

Réinitialisez les marges et paddings de tous les éléments, et définissez un box-sizing cohérent.

1.2 Page

La page doit avoir :
- Une police moderne et lisible
- Une hauteur de ligne confortable (environ 1.6)
- Un fond jaune très clair (#FFF9E6)
- Une couleur de texte sombre

1.3 Titres

Tous les titres (h1, h2, h3, h4) doivent avoir une couleur rouge vif (#CC0000) et être en gras.

Définissez des tailles appropriées pour chaque niveau.

1.4 Autres éléments

  • Les paragraphes doivent avoir un espacement en dessous
  • Les liens doivent être bleus (#3B4CCA), sans soulignement, et changer de couleur au survol (rouge #CC0000)
  • Les listes doivent avoir un décalage et un espacement
  • Les éléments <strong> doivent être en gras et rouges

📍 Étape 2 : Container principal

Le container principal de l'article doit :

  • Avoir une largeur maximale raisonnable (environ 900px)
  • Être centré horizontalement sur la page
  • Avoir un fond blanc qui contraste avec la page
  • Avoir un padding généreux à l'intérieur
  • Avoir des coins arrondis
  • Avoir une ombre portée pour créer de la profondeur
  • Avoir une bordure épaisse jaune vif (#FFCB05)

💡 Question : Quel sélecteur utiliser pour cibler ce container ?


📍 Étape 3 : En-tête de l'article

3.1 Zone d'en-tête

L'en-tête de l'article doit avoir un style particulier :

  • Un fond avec un dégradé rouge (de #CC0000 vers #FF6B6B)
  • Du texte blanc
  • Un padding confortable
  • Des coins arrondis
  • Une ombre pour le détacher du reste

3.2 Titre dans l'en-tête

Le titre h1 qui se trouve dans l'en-tête doit :

  • Être blanc (pour surcharger le rouge de base)
  • Être centré
  • Avoir une ombre de texte pour créer de la profondeur

💡 Défi : Comment appliquer un style au h1 uniquement quand il est dans l'en-tête ?

3.3 Paragraphe d'introduction

Le paragraphe d'introduction dans l'en-tête doit être légèrement plus grand que les paragraphes normaux

3.4 Informations auteur

Les informations sur l'auteur doivent :

  • Être plus petites (environ 14px)
  • Être centrées
  • Avoir une bordure en haut
  • Être légèrement espacées du reste

Le nom de l'auteur lui-même doit avoir un fond semi-transparent arrondi.


📍 Étape 4 : Image principale

L'image principale doit :
- Prendre toute la largeur disponible
- Garder ses proportions
- Avoir des coins arrondis
- Avoir une bordure jaune
- Avoir un espacement en dessous


📍 Étape 5 : Contenu de l'article

5.1 Titres h2 dans le contenu

Les titres h2 qui sont dans le contenu de l'article (pas dans l'en-tête ou le footer) doivent avoir :

  • Une bordure épaisse à gauche, jaune
  • Un padding à gauche
  • Un fond qui s'estompe de gauche à droite (du jaune clair vers transparent)

💡 Défi : Comment cibler les h2 uniquement dans le contenu, pas ailleurs ?

5.2 Paragraphes dans le contenu

Les paragraphes qui sont dans le contenu doivent être justifiés et avoir une couleur légèrement plus claire que le noir pur.

5.3 Encadré "Conseil"

L'encadré de conseil doit se démarquer visuellement :

  • Fond bleu clair (#E8F8FF)
  • Bordure bleue épaisse (#3B4CCA)
  • Coins arrondis
  • Padding généreux
  • Style italique
  • Ombre légère

5.4 Encadré "Le saviez-vous ?"

L'encadré "Le saviez-vous ?" doit avoir :

  • Un fond jaune pâle (#FFF3CD)
  • Une bordure pointillée jaune (#FFCB05)
  • Des coins arrondis
  • Du padding

Le titre h4 dans cet encadré doit être orange (#FF6B00).

💡 Défi : Comment cibler uniquement le h4 qui est dans cet encadré ?

5.5 Liste de stratégies

La liste de stratégies doit :

  • Avoir un fond gris clair
  • Une bordure rouge à gauche
  • Du padding
  • Des coins arrondis

5.6 Liste de ressources

La liste de ressources doit :

  • Avoir un fond vert clair (#E8F5E9)
  • Une bordure verte (#4CAF50)
  • Avoir les puces de liste supprimées
  • Avoir des bordures entre chaque élément (mais pas après le dernier)

Les liens dans cette liste doivent avoir un effet au survol (changement de couleur + léger décalage vers la droite).

💡 Défi : Comment enlever la bordure uniquement pour le dernier élément de la liste ?

5.7 Premier paragraphe du contenu

Le tout premier paragraphe du contenu (juste après l'image) doit être légèrement plus gros et plus foncé pour attirer l'attention.

💡 Défi : Comment cibler uniquement le premier paragraphe enfant direct du contenu ?


📍 Étape 6 : Pied de page

6.1 Zone de pied de page

Le pied de page de l'article doit :
- Avoir un fond avec un dégradé bleu (de #3B4CCA vers #5C6FD8)
- Du texte blanc
- Du padding
- Des coins arrondis
- Une ombre
- Être centré

6.2 Paragraphe de conclusion

Appliquer un style identique à la phrase d'introduction presente dans l'en-tête sans écrire plus de CSS.

💡 Défi : Trouver une solution technique pour mettre en place le style sur le paragraphe de conclusion

Le texte de copyright doit être plus petit et légèrement transparent.


📍 Étape 7 : Touches finales

7.1 Effets sur les listes

  • Le premier élément de chaque liste <ul> dans le contenu doit être en gras et rouge
  • Les éléments impairs des listes <ol> dans le contenu doivent avoir un fond jaune clair

💡 Défi : Quelles pseudo-classes utiliser ?

7.2 Transitions

Ajoutez des transitions douces (0.3s) sur :
- Les liens lors du survol
- Les liens de la liste de ressources


🎨 Palette de couleurs

Utilisez ces couleurs pour rester cohérent :

  • Rouge Pokémon : #CC0000
  • Jaune Pokémon : #FFCB05
  • Bleu Pokémon : #3B4CCA
  • Fond page : #FFF9E6
  • Gris texte : #555
  • Vert : #4CAF50
  • Orange : #FF6B00
  • Bleu clair : #E8F8FF
  • Jaune clair : #FFF3CD

💡 Indices et questions pour vous guider

Comment centrer le container ?

Recherchez "centrer un div horizontalement CSS" - vous devrez jouer avec les marges.

Comment faire un dégradé ?

Recherchez "CSS linear-gradient" - attention à la syntaxe.

Comment cibler un élément dans un autre ?

Utilisez les sélecteurs descendants (espace) ou enfants directs (>). Quelle est la différence ?

Comment enlever les puces d'une liste ?

Recherchez la propriété list-style.

Comment cibler le dernier élément ?

Utilisez une pseudo-classe. Recherchez "CSS last-child".

Comment faire une bordure pointillée ?

Recherchez "CSS dashed border".

Comment faire une ombre ?

Recherchez "CSS box-shadow" pour les boîtes et "text-shadow" pour le texte.

Comment réutiliser un style ?

Si deux éléments doivent avoir le même style, donnez-leur la même classe dans le HTML !


🐛 Aide au débogage

Mon CSS ne s'applique pas

  1. Avez-vous ajouté la balise <link> dans le HTML ?
  2. Le chemin vers le fichier CSS est-il correct ?
  3. Avez-vous sauvegardé les deux fichiers ?
  4. Essayez de vider le cache (Ctrl+F5)

Mon sélecteur ne fonctionne pas

  1. Utilisez F12 pour inspecter l'élément
  2. Vérifiez l'orthographe des classes (avec ou sans le point . ?)
  3. Votre sélecteur est-il assez spécifique ?
  4. Y a-t-il un conflit avec un autre style ?

L'image ne s'affiche pas

  1. Vérifiez votre connexion Internet (l'image vient d'une API externe)
  2. Copiez-collez l'URL dans votre navigateur pour tester

Je ne sais pas comment faire X

  1. Relisez le cours
  2. Cherchez sur MDN ou Google
  3. Utilisez F12 pour voir comment d'autres sites le font
  4. Demandez de l'aide à vos camarades ou à l'enseignant

🎯 Compétences développées

Cet exercice vous permet de travailler :

Analyse : Comprendre la structure HTML
Recherche : Trouver les propriétés CSS appropriées
Sélecteurs : Classes, descendants, enfants, pseudo-classes
Box Model : Padding, margin, border
Centrage : Techniques pour centrer des éléments
Héritage : Comprendre comment les styles se propagent
Surcharge : Modifier des styles hérités
Réutilisation : Utiliser la même classe pour plusieurs éléments
Organisation : Structurer son CSS proprement
Autonomie : Résoudre des problèmes par la recherche

Bon courage, futur Maître CSS ! ⚡🎮