loader image

La boite à ITees

Homme assis devant un ordinateur, entouré de quatre écrans fixés aux coins du mur, avec un panneau "CSS" visible au centre, symbolisant l'apprentissage du design web et du CSS.

Exercices CSS

Exercice 1

 

Appliquer des Styles de Base

Objectif : Apprendre à appliquer des styles de base à des éléments HTML.

 

Consigne : Créez une page HTML avec un titre, un paragraphe, et appliquez les styles suivants :

    • Le texte du titre doit être rouge.
    • Le paragraphe doit avoir une couleur de texte bleue et une taille de police de 18px.

 

Correction de l’exercice 1 

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Styles de Base</title>
</head>
<body>
    <h1>Titre Rouge</h1>
    <p>Ce paragraphe est en bleu avec une taille de police de 18px.</p>
</body>
</html>
h1 {
  color: red;
}
p {
  color: blue;
  font-size: 18px;
}
    • Les sélecteurs h1 et p ciblent respectivement le titre et le paragraphe, et les styles sont appliqués directement via les propriétés CSS.

Exercice 2

 

Utiliser des Classes pour Styliser

Objectif : Apprendre à utiliser des classes pour appliquer des styles à plusieurs éléments.

 

Consigne : Créez deux paragraphes et appliquez une classe qui change leur couleur de fond en jaune et leur couleur de texte en noir.

 

Correction de l’exercice 2

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Classes CSS</title>
</head>
<body>
    <p class="highlight">Premier paragraphe avec un fond jaune.</p>
    <p class="highlight">Deuxième paragraphe avec un fond jaune.</p>
</body>
</html>
.highlight {
  background-color: yellow;
  color: black;
}
    • La class .highlight est utilisée pour styliser les paragraphes avec un fond jaune et un texte noir.
    • background-color: yellow; applique un fond jaune.
    • color: black; rend le texte noir.

 

    • En utilisant la classe .highlight sur plusieurs éléments (dans ce cas, deux paragraphes) peuvent partager les mêmes styles, ce qui permet une gestion plus centralisée et réutilisable des styles.

Exercice 3

 

Styliser des Listes

Objectif : Apprendre à styliser des listes HTML.

 

Consigne : Créez une liste non ordonnée et appliquez les styles suivants :

    • Changer la couleur des puces en vert.
    • Modifier la police de la liste en Arial.

 

Correction de l’exercice 3

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Styliser une Liste</title>
</head>
<body>
    <ul>
        <li>Premier élément</li>
        <li>Deuxième élément</li>
        <li>Troisième élément</li>
    </ul>
</body>
</html>
ul {
  list-style-type: disc;
  list-style-position: inside;
  color: green;
  font-family: Arial, sans-serif;
}
    • ul : Cible les éléments de liste non ordonnée <ul>.
    • list-style-type: disc; définit le style des puces (ici, des disques pleins).
    • list-style-position: inside; fait en sorte que les puces soient à l’intérieur du cadre du texte.
    • color: green; applique une couleur verte au texte des éléments de la liste.
    • font-family: Arial, sans-serif; utilise la police Arial pour le texte de la liste.

Exercice 4

 

Créer une Mise en Page avec Flexbox

Objectif : Apprendre les bases de Flexbox pour aligner des éléments.

 

Consigne : Créez trois div dans un conteneur, et utilisez Flexbox pour les aligner horizontalement avec un espacement égal entre eux.

 

Correction de l’exercice 4

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Mise en Page avec Flexbox</title>
</head>
<body>
    <div class="container">
        <div class="box">Box 1</div>
        <div class="box">Box 2</div>
        <div class="box">Box 3</div>
    </div>
</body>
</html>
.container {
    display: flex;
    justify-content: space-between;
}
.box {
    width: 100px;
    height: 100px;
    background-color: lightblue;
    text-align: center;
    line-height: 100px;
}

Classe .container :

    • Flexbox pour disposer les boîtes (.box) de manière horizontale.
    • display: flex; active le modèle Flexbox.
    • justify-content: space-between; répartit les boîtes uniformément avec un espace égal entre elles.

 

Classe .box :

    • width: 100px; height: 100px; fixe la taille de chaque boîte à 100×100 pixels.
    • background-color: lightblue; colore le fond des boîtes en bleu clair.
    • text-align: center; centre le texte horizontalement.
    • line-height: 100px; centre le texte verticalement en utilisant la hauteur de ligne égale à la hauteur de la boîte.

Exercice 5

 

Utiliser le Positionnement CSS

Objectif : Apprendre les différents types de positionnement CSS.

 

Consigne : Créez une div et placez-la absolument dans le coin inférieur droit de la page.

 

Correction de l’exercice 5

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Positionnement CSS</title>
</head>
<body>
    <div class="positioned-box">Box Positionnée</div>
</body>
</html>
.positioned-box {
    width: 150px;
    height: 150px;
    background-color: coral;
    position: absolute;
    bottom: 0;
    right: 0;
}
    • position: absolute; permet de positionner l’élément en dehors du flux normal du document.
    • bottom: 0; right: 0; place la boîte dans le coin inférieur droit de son conteneur parent (ou de la fenêtre si aucun parent n’est positionné).
    • width: 150px; height: 150px; définit la taille de la boîte à 150×150 pixels.
    • background-color: coral; applique une couleur de fond corail.

Exercice 6

 

Créer des Boutons Stylisés

Objectif : Apprendre à styliser des boutons avec CSS.

 

Consigne : Créez un bouton et appliquez les styles suivants :

    • Une couleur de fond bleue.
    • Un texte blanc.
    • Un effet de survol qui change la couleur de fond en vert.

 

Correction de l’exercice 6

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Boutons Stylisés</title>
</head>
<body>
    <button class="btn">Cliquez-moi</button>
</body>
</html>
.btn {
    background-color: blue;
    color: white;
    padding: 10px 20px;
    border: none;
    cursor: pointer;
}
.btn:hover {
    background-color: green;
}

Classe .btn

    • background-color: blue; applique un fond bleu au bouton.
    • color: white; rend le texte du bouton blanc.
    • padding: 10px 20px; ajoute un espacement interne (10 pixels en haut et en bas, 20 pixels à gauche et à droite).
    • border: none; retire toute bordure autour du bouton.
    • cursor: pointer; change le curseur en une main lorsqu’on survole le bouton, indiquant qu’il est cliquable.

 

Pseudo-classe :hover :

    • background-color: green; change la couleur de fond en vert lorsque l’utilisateur passe la souris sur le bouton.

Exercice 7

 

Créer un Menu de Navigation Horizontal

Objectif : Apprendre à créer un menu de navigation horizontal.

 

Consigne : Créez un menu de navigation horizontal avec trois liens. Chaque lien doit être stylisé avec un padding et une couleur de fond différente.

 

Correction de l’exercice 7

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Menu de Navigation</title>
</head>
<body>
    <nav>
        <ul>
            <li><a href="#">Accueil</a></li>
            <li><a href="#">À propos</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </nav>
</body>
</html>
nav ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
    display: flex;
    background-color: #333;
}
nav ul li {
    margin: 0;
}
nav ul li a {
    display: block;
    padding: 10px 20px;
    color: white;
    text-decoration: none;
    background-color: #444;
}
nav ul li a:hover {
    background-color: #555;
}

Sélecteur nav ul :

      • list-style-type: none; supprime les puces par défaut des éléments de la liste.
      • padding: 0; margin: 0; retire les marges et les espacements internes pour permettre un alignement parfait.
      • display: flex; transforme la liste en une rangée horizontale.

 

Sélecteur nav ul li a :

      • display: block; fait en sorte que les liens soient traités comme des blocs, occupant toute la zone de leur conteneur.
      • padding: 10px 20px; ajoute de l’espacement autour du texte pour une meilleure lisibilité.
      • color: white; rend le texte des liens blanc.
      • text-decoration: none; supprime le soulignement par défaut des liens.
      • background-color: #444; applique un fond gris foncé aux liens.

 

Pseudo-classe :hover :

      • background-color: #555; assombrit le fond des liens lorsque l’utilisateur passe la souris dessus.

Exercice 8

 

Utiliser des Sélecteurs Combinés

Objectif : Apprendre à utiliser des sélecteurs CSS combinés pour styliser des éléments spécifiques.

 

Consigne : Créez trois paragraphes et appliquez les styles suivants :

    • Le premier paragraphe doit être rouge.
    • Le dernier paragraphe doit être vert.
    • Tous les paragraphes qui sont enfants directs d’une div doivent avoir une bordure.

Correction de l’exercice 8

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Sélecteurs Combinés</title>
</head>
<body>
    <p>Premier paragraphe rouge.</p>
    <div>
        <p>Paragraphe avec une bordure.</p>
        <p>Dernier paragraphe vert.</p>
    </div>
</body>
</html>
p:first-of-type {
    color: red;
}
p:last-of-type {
    color: green;
}
div > p {
    border: 1px solid black;
    padding: 10px;
} 

Pseudo-classe :first-of-type :

      • p:first-of-type cible le premier paragraphe dans son conteneur et le colore en rouge.

 

Pseudo-classe :last-of-type :

      • p:last-of-type cible le dernier paragraphe dans son conteneur et le colore en vert.

 

Sélecteur div > p :

      • Ce sélecteur cible les paragraphes qui sont des enfants directs de div et leur applique une bordure noire avec un padding de 10 pixels.

Exercice 9

 

Créer un Tableau Stylisé

Objectif : Apprendre à styliser des tableaux en CSS.

 

Consigne : Créez un tableau avec trois colonnes et deux lignes. Appliquez les styles suivants :

    • Une bordure sur toutes les cellules.
    • Un fond gris clair sur la première ligne.
    • Un espacement interne de 10px dans les cellules.

 

Correction de l’exercice 9

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Tableau Stylisé</title>
</head>
<body>
    <table>
        <tr>
            <th>En-tête 1</th>
            <th>En-tête 2</th>
            <th>En-tête 3</th>
        </tr>
        <tr>
            <td>Données 1</td>
            <td>Données 2</td>
            <td>Données 3</td>
        </tr>
    </table>
</body>
</html>
table {
  width: 100%;
  border-collapse: collapse;
}
th, td {
  border: 1px solid black;
  padding: 10px;
}
th {
  background-color: lightgray;
}

Sélecteur table :

      • width: 100%; fait en sorte que le tableau occupe toute la largeur de son conteneur.
      • border-collapse: collapse; fusionne les bordures adjacentes des cellules pour une apparence plus nette.

 

Sélecteur th, td :

      • border: 1px solid black; ajoute une bordure noire autour des cellules.
      • padding: 10px; ajoute un espacement interne pour rendre le texte plus lisible.

 

Sélecteur th :

      • background-color: lightgray; applique un fond gris clair aux en-têtes du tableau.

Exercice 10

 

Créer une Carte de Profil avec CSS Grid

Objectif : Apprendre à utiliser CSS Grid pour créer des mises en page complexes.

 

Consigne : Créez une carte de profil avec une image, un nom, et une description. Utilisez CSS Grid pour structurer la carte.

 

Correction de l’exercice 10

Correction
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Carte de Profil avec CSS Grid</title>
</head>
<body>
    <div class="profile-card">
        <img src="profile.jpg" alt="Photo de profil">
        <div class="info">
            <h2>John Doe</h2>
            <p>Développeur Web</p>
        </div>
    </div>
</body>
</html>
.profile-card {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 10px;
    width: 400px;
    padding: 20px;
    border: 1px solid #ccc;
    box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.1);
}
.profile-card img {
    width: 100%;
    border-radius: 50%;
}
.profile-card .info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.profile-card h2 {
    margin: 0;
    font-size: 24px;
    color: #333;
}
.profile-card p {
    margin: 5px 0 0;
    color: #777;
}

Classe .profile-card :

      • display: grid; grid-template-columns: 1fr 2fr; crée une grille avec deux colonnes : une pour l’image et une pour les informations. La colonne de l’image occupe 1 part, tandis que celle des informations en occupe 2.
      • gap: 10px; ajoute un espace de 10 pixels entre les colonnes.
      • width: 400px; fixe la largeur totale de la carte à 400 pixels.
      • padding: 20px; ajoute un espacement interne de 20 pixels tout autour de la carte.
      • border: 1px solid #ccc; applique une bordure grise claire autour de la carte.
      • box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.1); ajoute une ombre portée légère pour donner un effet de profondeur.

 

Classe .profile-card img :

      • width: 100%; fait en sorte que l’image occupe toute la largeur de sa colonne.
      • border-radius: 50%; applique un effet de bordure arrondie pour que l’image devienne circulaire.

 

Classe .profile-card .info :

      • display: flex; flex-direction: column; justify-content: center; utilise Flexbox pour centrer verticalement les éléments textuels dans la colonne d’informations.

 

Classe .profile-card h2 :

      • margin: 0; font-size: 24px; color: #333; enlève les marges par défaut, augmente la taille de la police et applique une couleur gris foncé au titre.

 

Classe .profile-card p :

      • margin: 5px 0 0; color: #777; réduit les marges au-dessus du paragraphe et applique une couleur gris moyen.