Séance 9

Objectifs

  • Découvrir Grid et savoir l’utiliser pour organiser une page complexe.

  • Choisir entre Flexbox et Grid selon la situation.

MéthodeArborescence

Arborescence

Méthodeindex.html

1
<!DOCTYPE html>
2
<html lang="fr">
3
4
<head>
5
    <meta charset="UTF-8">
6
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
    <title>Portfolio de Vincent Vanneste</title>
8
    <link rel="stylesheet" href="css/style.css">
9
    <link rel="stylesheet" href="css/accueil.css">
10
    <!-- Import de polices externes (Google Fonts) -->
11
    <link
12
        href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=Roboto:wght@400;700&display=swap"
13
        rel="stylesheet">
14
    <!-- Font Awesome CDN pour icônes -->
15
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
16
</head>
17
18
<body>
19
20
    <header id="haut" aria-label="En-tête du site">
21
        <figure aria-labelledby="figcaption-vv">
22
            <img src="images/photo.jpg" alt="Photo de Vincent Vanneste">
23
            <figcaption id="figcaption-vv">Vincent Vanneste</figcaption>
24
        </figure>
25
26
        <h1>Portfolio de Vincent Vanneste</h1>
27
        <nav aria-label="Navigation principale">
28
            <ul>
29
                <li><a href="index.html">Accueil</a></li>
30
                <li><a href="projets.html">Projets</a></li>
31
                <li><a href="https://www.univ-littoral.fr/" target="_blank">ULCO</a></li>
32
            </ul>
33
        </nav>
34
35
    </header>
36
37
    <main aria-label="Contenu principal du site">
38
        <nav aria-label="Navigation interne à la page">
39
            <ul>
40
                <li><a href="#about">À propos</a></li>
41
                <li><a href="#competences">Compétences</a></li>
42
                <li><a href="#experiences">Expériences</a></li>
43
                <li><a href="#formations">Formations</a></li>
44
            </ul>
45
        </nav>
46
47
        <!-- À propos -->
48
        <section id="about" aria-labelledby="titre-about">
49
            <h2 class="icon-about" id="titre-about">À propos</h2>
50
            <p>Je suis directeur des études du DEUST WMI de Calais et j'enseigne les fondamentaux du développement web
51
                (HTML, CSS, JavaScript, PHP). Passionné par la transmission des connaissances, j'accompagne mes
52
                étudiants dans l'acquisition des compétences nécessaires pour réussir dans le secteur du numérique.</p>
53
            <address role="contentinfo" aria-label="Coordonnées">
54
                <dl>
55
                    <dt>Localisation :</dt>
56
                    <dd>Calais, France</dd>
57
                    <dt>Site :</dt>
58
                    <dd><a href="https://vincent-vanneste.fr/" target="_blank">vincent-vanneste.fr</a></dd>
59
                    <dt>Email :</dt>
60
                    <dd><a href="mailto:vincent.vanneste@univ-littoral.fr">vincent.vanneste@univ-littoral.fr</a></dd>
61
                </dl>
62
            </address>
63
        </section>
64
65
66
67
        <!-- Compétences -->
68
        <section id="competences" aria-labelledby="titre-competences">
69
            <h2 class="icon-competences" id="titre-competences">Compétences</h2>
70
            <ul>
71
                <li>HTML</li>
72
                <li>CSS</li>
73
                <li>Responsive</li>
74
                <li>Accessibilité</li>
75
                <li>JavaScript</li>
76
                <li>PHP • Laravel 11</li>
77
                <li>MySQL</li>
78
                <li>Git & GitHub</li>
79
            </ul>
80
        </section>
81
82
83
84
        <!-- Expériences -->
85
        <section id="experiences" aria-labelledby="titre-experiences">
86
            <h2 class="icon-experiences" id="titre-experiences">Expériences récentes</h2>
87
            <ul>
88
                <li>
89
                    <strong>Enseignant – Licence 1 Informatique</strong><br>
90
                    <time datetime="2025">2025</time>
91
                    <address>
92
                        <a href="https://www.univ-littoral.fr/" target="_blank">ULCO</a>
93
                    </address><br>
94
                    Introduction à HTML, CSS, JS
95
                </li>
96
                <li>
97
                    <strong>Directeur des études – DEUST WMI</strong><br>
98
                    depuis <time datetime="2024">2024</time>
99
                    <address>
100
                        <a href="https://www.univ-littoral.fr/" target="_blank">FCU ULCO</a>
101
                    </address>
102
                </li>
103
            </ul>
104
        </section>
105
106
        <!-- Formations -->
107
        <section id="formations" aria-labelledby="titre-formations">
108
            <h2 class="icon-formations" id="titre-formations">Formations</h2>
109
            <ul>
110
                <li>
111
                    <strong>Doctorat productique, automatique et informatique industrielle</strong><br>
112
                    <time datetime="2000">2000</time>
113
                    <address>
114
                        <a href="https://www.univ-lille.fr/" target="_blank">Université de Lille</a>
115
                    </address>
116
                </li>
117
                <li>
118
                    <strong>CAPET Technologie</strong><br>
119
                    <time datetime="1998">1998</time>
120
                    <address>
121
                        <a href="https://www.iufm-douai.fr/" target="_blank">IUFM Douais</a>
122
                    </address>
123
                </li>
124
            </ul>
125
        </section>
126
127
    </main>
128
129
    <footer aria-label="Pied de page">
130
        <p>&copy; 2025 <strong>Vincent Vanneste</strong>. Tous droits réservés.</p>
131
        <!-- Réseaux sociaux -->
132
        <div class="socials" role="navigation" aria-label="Réseaux sociaux">
133
            <a href="https://www.facebook.com/" target="_blank" aria-label="Facebook">
134
                <i class="fab fa-facebook-f"></i>
135
            </a>
136
            <a href="https://www.linkedin.com/in/" target="_blank" aria-label="LinkedIn">
137
                <i class="fab fa-linkedin-in"></i>
138
            </a>
139
            <a href="https://www.instagram.com/" target="_blank" aria-label="Instagram">
140
                <i class="fab fa-instagram"></i>
141
            </a>
142
            <a href="https://x.com/" target="_blank" aria-label="X">
143
                <i class="fab fa-x-twitter"></i>
144
            </a>
145
        </div>
146
    </footer>
147
148
149
</body>
150
151
</html>

Méthodeprojets.html

1
<!DOCTYPE html>
2
<html lang="fr">
3
4
<head>
5
    <meta charset="UTF-8">
6
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
    <title>Portfolio - Projets</title>
8
    <link rel="stylesheet" href="css/style.css">
9
    <link rel="stylesheet" href="css/projets.css">
10
    <!-- Import de polices externes (Google Fonts) -->
11
    <link
12
        href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=Roboto:wght@400;700&display=swap"
13
        rel="stylesheet">
14
    <!-- Font Awesome CDN pour icônes -->
15
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
16
</head>
17
18
<body>
19
20
    <header id="haut" aria-label="En-tête du site">
21
        <figure aria-labelledby="figcaption-vv">
22
            <img src="images/photo.jpg" alt="Photo de Vincent Vanneste">
23
            <figcaption id="figcaption-vv">Vincent Vanneste</figcaption>
24
        </figure>
25
26
        <h1>Portfolio de Vincent Vanneste</h1>
27
        <nav aria-label="Navigation principale">
28
            <ul>
29
                <li><a href="index.html">Accueil</a></li>
30
                <li><a href="projets.html">Projets</a></li>
31
                <li><a href="https://www.univ-littoral.fr/" target="_blank">ULCO</a></li>
32
            </ul>
33
        </nav>
34
35
    </header>
36
37
    <main>
38
39
        <section aria-labelledby="liste-projets" class="projets">
40
            <h2 id="liste-projets">Liste des projets</h2>
41
42
            <article aria-labelledby="titre-projet1">
43
                <h3 id="titre-projet1"><a href="projets/projet1.html">Projet 1</a></h3>
44
                <figure aria-labelledby="fig-projet1">
45
                    <img src="images/vignettes/projet1.jpg" alt="Aperçu du Projet 1">
46
                    <figcaption id="fig-projet1">Aperçu du Projet 1</figcaption>
47
                </figure>
48
                <p>Un projet qui présente les bases du HTML et de la mise en page.</p>
49
            </article>
50
51
            <article aria-labelledby="titre-projet2">
52
                <h3 id="titre-projet2"><a href="projets/projet2.html">Projet 2</a></h3>
53
                <figure aria-labelledby="fig-projet2">
54
                    <img src="images/vignettes/projet2.jpg" alt="Aperçu du Projet 2">
55
                    <figcaption id="fig-projet2">Aperçu du Projet 2</figcaption>
56
                </figure>
57
                <p>Un site en CSS avec une mise en forme responsive adaptée aux mobiles.</p>
58
            </article>
59
60
            <article aria-labelledby="titre-projet3">
61
                <h3 id="titre-projet3"><a href="projets/projet3.html">Projet 3</a></h3>
62
                <figure aria-labelledby="fig-projet3">
63
                    <img src="images/vignettes/projet3.jpg" alt="Aperçu du Projet 3">
64
                    <figcaption id="fig-projet3">Aperçu du Projet 3</figcaption>
65
                </figure>
66
                <p>Un mini-site en JavaScript avec des interactions simples.</p>
67
            </article>
68
69
            <article aria-labelledby="titre-projet4">
70
                <h3 id="titre-projet4"><a href="projets/projet4.html">Projet 4</a></h3>
71
                <figure aria-labelledby="fig-projet4">
72
                    <img src="images/vignettes/projet4.jpg" alt="Aperçu du Projet 4">
73
                    <figcaption id="fig-projet4">Aperçu du Projet 4</figcaption>
74
                </figure>
75
                <p>Une application web utilisant PHP et MySQL pour gérer des données.</p>
76
            </article>
77
78
            <article aria-labelledby="titre-projet5">
79
                <h3 id="titre-projet5"><a href="projets/projet5.html">Projet 5</a></h3>
80
                <figure aria-labelledby="fig-projet5">
81
                    <img src="images/vignettes/projet5.jpg" alt="Aperçu du Projet 5">
82
                    <figcaption id="fig-projet5">Aperçu du Projet 5</figcaption>
83
                </figure>
84
                <p>Un projet complet combinant HTML, CSS, JS et base de données.</p>
85
            </article>
86
87
        </section>
88
    </main>
89
90
    <footer aria-label="Pied de page">
91
        <p>&copy; 2025 <strong>Vincent Vanneste</strong>. Tous droits réservés.</p>
92
        <!-- Réseaux sociaux -->
93
        <div class="socials" role="navigation" aria-label="Réseaux sociaux">
94
            <a href="https://www.facebook.com/" target="_blank" aria-label="Facebook">
95
                <i class="fab fa-facebook-f"></i>
96
            </a>
97
            <a href="https://www.linkedin.com/in/" target="_blank" aria-label="LinkedIn">
98
                <i class="fab fa-linkedin-in"></i>
99
            </a>
100
            <a href="https://www.instagram.com/" target="_blank" aria-label="Instagram">
101
                <i class="fab fa-instagram"></i>
102
            </a>
103
            <a href="https://x.com/" target="_blank" aria-label="X">
104
                <i class="fab fa-x-twitter"></i>
105
            </a>
106
        </div>
107
    </footer>
108
</body>
109
110
</html>

Méthodeprojets/projet1.html

1
<!DOCTYPE html>
2
<html lang="fr">
3
4
<head>
5
    <meta charset="UTF-8">
6
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
    <title>Projet 1 - Portfolio de Vincent Vanneste</title>
8
    <link rel="stylesheet" href="../css/style.css">
9
    <link rel="stylesheet" href="../css/projet.css">
10
    <!-- Google Fonts -->
11
    <link
12
        href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=Roboto:wght@400;700&display=swap"
13
        rel="stylesheet">
14
    <!-- Font Awesome -->
15
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
16
</head>
17
18
<body>
19
20
    <header id="haut" aria-label="En-tête du site">
21
        <figure aria-labelledby="figcaption-vv">
22
            <img src="../images/photo.jpg" alt="Photo de Vincent Vanneste">
23
            <figcaption id="figcaption-vv">Vincent Vanneste</figcaption>
24
        </figure>
25
26
        <h1>Portfolio de Vincent Vanneste</h1>
27
        <nav aria-label="Navigation principale">
28
            <ul>
29
                <li><a href="../index.html">Accueil</a></li>
30
                <li><a href=".../projets.html">Projets</a></li>
31
                <li><a href="https://www.univ-littoral.fr/" target="_blank">ULCO</a></li>
32
            </ul>
33
        </nav>
34
35
    </header>
36
37
    <main>
38
        <article aria-labelledby="titre-projet1" class="projets">
39
40
            <header>
41
                <h2 id="titre-projet1">Projet 1 <br> Découverte du HTML et du CSS</h2>
42
                <figure>
43
                    <img src="../images/projet1.jpg" alt="Capture d’écran du Projet 1">
44
                    <figcaption>Page d’accueil du projet HTML/CSS</figcaption>
45
                </figure>
46
            </header>
47
48
            <section aria-labelledby="description-projet">
49
                <h2 id="description-projet">Description du projet</h2>
50
                <p>
51
                    Ce premier projet consiste à créer un mini-site en HTML et CSS.
52
                    L’objectif est de comprendre la structure d’une page web,
53
                    d’utiliser les balises sémantiques et d’appliquer les premières règles de style CSS.
54
                </p>
55
            </section>
56
57
            <section aria-labelledby="objectifs-projet">
58
                <h2 id="objectifs-projet">Objectifs pédagogiques</h2>
59
                <ul>
60
                    <li>Découvrir la structure d’un document HTML5.</li>
61
                    <li>Apprendre à organiser un site web avec plusieurs pages liées.</li>
62
                    <li>Utiliser le CSS pour la mise en forme du contenu.</li>
63
                    <li>Publier le site sur GitHub Pages.</li>
64
                </ul>
65
            </section>
66
67
            <section aria-labelledby="competences-visees">
68
                <h2 id="competences-visees">Compétences visées</h2>
69
                <ul>
70
                    <li>Structurer et organiser un site web en utilisant le HTML sémantique et les bonnes pratiques de
71
                        codage.</li>
72
                    <li>Mettre en forme et personnaliser l’apparence d’un site avec le CSS (Flexbox, Grid, couleurs,
73
                        polices, effets).</li>
74
                    <li>Créer un portfolio complet avec une navigation cohérente.</li>
75
                    <li>Intégrer des contenus multimédias accessibles et esthétiques.</li>
76
                    <li>Adapter un site aux différents écrans grâce au responsive design et aux media queries.</li>
77
                    <li>Déployer un site en ligne via GitHub Pages et le valider (W3C, Lighthouse).</li>
78
                    <li>Présenter et valoriser son travail avec une identité graphique cohérente.</li>
79
                </ul>
80
            </section>
81
82
            <section aria-labelledby="resultat-projet">
83
                <h2 id="resultat-projet">Résultat obtenu</h2>
84
                <p>
85
                    Le projet final se compose d’une page d’accueil, d’une galerie de projets et d'une page par projet.
86
                    Le site est responsive et conforme aux standards du W3C.
87
                </p>
88
                <p>
89
                    <a href="" class="btn" target="_blank" rel="noopener">
90
                        <i class="fa-solid fa-eye"></i> Voir la démo
91
                    </a>
92
                </p>
93
            </section>
94
95
            <nav class="nav-projets" aria-label="Navigation entre les projets">
96
                <a href="../projets/projet2.html" class="next">Projet suivant →</a>
97
            </nav>
98
99
        </article>
100
    </main>
101
102
    <footer aria-label="Pied de page">
103
        <p>&copy; 2025 <strong>Vincent Vanneste</strong>. Tous droits réservés.</p>
104
        <!-- Réseaux sociaux -->
105
        <div class="socials" role="navigation" aria-label="Réseaux sociaux">
106
            <a href="https://www.facebook.com/" target="_blank" aria-label="Facebook">
107
                <i class="fab fa-facebook-f"></i>
108
            </a>
109
            <a href="https://www.linkedin.com/in/" target="_blank" aria-label="LinkedIn">
110
                <i class="fab fa-linkedin-in"></i>
111
            </a>
112
            <a href="https://www.instagram.com/" target="_blank" aria-label="Instagram">
113
                <i class="fab fa-instagram"></i>
114
            </a>
115
            <a href="https://x.com/" target="_blank" aria-label="X">
116
                <i class="fab fa-x-twitter"></i>
117
            </a>
118
        </div>
119
    </footer>
120
121
</body>
122
123
</html>

Méthodecss/style.css

1
/* ==========================================================================
2
   CSS Général
3
   ========================================================================== */
4
5
/* --- Corps de la page --- */
6
body {
7
    /***************/
8
    /* Typographie */
9
    /***************/
10
    font-family: 'Poppins', Arial, sans-serif;
11
    /* Police principale : Poppins si disponible, sinon Arial, puis une police sans-serif */
12
    color: #222;
13
    /* Couleur du texte légèrement plus sombre que noir (priorise la couleur plus foncée de la deuxième définition) */
14
    line-height: 1.5;
15
    /* Hauteur de ligne pour améliorer la lisibilité */
16
17
    /**********************/
18
    /* Boîte & Espacement */
19
    /**********************/
20
    margin: 0;
21
    /* Supprime la marge par défaut autour de la page */
22
23
    /****************************/
24
    /* Couleurs & Arrière-plans */
25
    /****************************/
26
    background: linear-gradient(135deg, #e8f0ff 0%, #f9fcff 100%);
27
    /* Fond dégradé diagonal du bleu clair vers le blanc */
28
29
    /***************/
30
    /* Transitions */
31
    /***************/
32
    transition: background 0.5s ease;
33
    /* Transition douce si le fond change dynamiquement */
34
}
35
36
/* ==========================================================================
37
   En-tête (Header)
38
   ========================================================================== */
39
body>header {
40
    /***************/
41
    /* Typographie */
42
    /***************/
43
    text-align: center;
44
    /* Centre le contenu horizontalement */
45
    color: white;
46
    /* Texte en blanc (priorise la couleur blanche de la deuxième définition) */
47
48
    /**********************/
49
    /* Boîte & Espacement */
50
    /**********************/
51
    padding: 20px;
52
    /* Espace intérieur autour du contenu du header */
53
54
    /****************************/
55
    /* Couleurs & Arrière-plans */
56
    /****************************/
57
    background: linear-gradient(135deg, #0073e6, #004a99);
58
    /* Dégradé bleu du clair vers le foncé */
59
60
    /********************/
61
    /* Bordures & Ombre */
62
    /********************/
63
    border-bottom: 2px solid #ddd;
64
    /* Bordure en bas du header pour le séparer du contenu */
65
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
66
    /* Ombre douce sous le header */
67
68
    /* Transitions */
69
    transition: background 0.3s ease;
70
    /* Transition pour un changement de fond fluide */
71
}
72
73
/* --- Titre principal du Header (h1) --- */
74
body>header h1 {
75
    /***************/
76
    /* Typographie */
77
    /***************/
78
    font-family: 'Roboto', sans-serif;
79
    /* Police du titre : Roboto */
80
    font-size: 2rem;
81
    /* Taille du texte plus grande pour le titre principal */
82
    letter-spacing: 0.5px;
83
    /* Espacement des lettres pour un style plus aéré */
84
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
85
    /* Légère ombre portée pour améliorer la lisibilité */
86
87
    /**********************/
88
    /* Boîte & Espacement */
89
    /**********************/
90
    margin: 10px 0;
91
    /* Espace vertical autour du titre */
92
}
93
94
/* --- Figure dans le header --- */
95
body>header figure {
96
    /**********************/
97
    /* Boîte & Espacement */
98
    /**********************/
99
    margin: 0 auto 10px;
100
    /* Centre la figure horizontalement + marge basse de 10px */
101
}
102
103
/* --- Image de profil --- */
104
body>header img {
105
    /**************/
106
    /* Dimensions */
107
    /**************/
108
    width: 150px;
109
    /* Largeur fixe de l'image */
110
111
    /********************/
112
    /* Bordures & Ombre */
113
    /********************/
114
    border-radius: 50%;
115
    /* Rend l'image ronde */
116
    border: 3px solid #0066cc;
117
    /* Bordure bleue autour de l'image */
118
119
    /***************/
120
    /* Transitions */
121
    /***************/
122
    transition: transform 0.3s ease, box-shadow 0.3s ease;
123
    /* Transition fluide pour l'effet de zoom/rotation et l'ombre */
124
}
125
126
body>header img:hover {
127
    /*******************/
128
    /* Transformations */
129
    /*******************/
130
    transform: scale(1.08) rotate(2deg);
131
    /* Agrandissement léger et rotation pour effet dynamique */
132
133
    /*********/
134
    /* Ombre */
135
    /*********/
136
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
137
    /* Ombre portée plus marquée au survol */
138
}
139
140
/* --- Légende de l'image de profil --- */
141
body>header figcaption {
142
    /***************/
143
    /* Typographie */
144
    /***************/
145
    font-size: 1rem;
146
    /* Taille normale du texte */
147
148
    /**********************/
149
    /* Boîte & Espacement */
150
    /**********************/
151
    margin-top: 8px;
152
    /* Espace entre l'image et la légende */
153
}
154
155
/* --- Navigation principale (dans le header) --- */
156
body>header nav ul {
157
    /***********/
158
    /* Flexbox */
159
    /***********/
160
    display: flex;
161
    /* Utilise Flexbox pour aligner les liens horizontalement */
162
    justify-content: center;
163
    /* Centre les éléments horizontalement */
164
    gap: 15px;
165
    /* Espace entre chaque élément de navigation */
166
167
    /**********************/
168
    /* Boîte & Espacement */
169
    /**********************/
170
    padding: 0;
171
    /* Supprime le padding par défaut */
172
    margin: 10px 0 0;
173
    /* Marge en haut de la liste, pas en bas */
174
175
    /******************/
176
    /* Style de liste */
177
    /******************/
178
    list-style: none;
179
    /* Supprime les puces de la liste */
180
}
181
182
/* --- Liens de navigation principale (dans le header) --- */
183
body>header nav a {
184
    /***************/
185
    /* Typographie */
186
    /***************/
187
    text-decoration: none;
188
    /* Supprime le soulignement des liens */
189
    color: #bfc5cb;
190
    /* Couleur bleue des liens */
191
    font-weight: bold;
192
    /* Texte en gras */
193
194
    /**********************/
195
    /* Boîte & Espacement */
196
    /**********************/
197
    padding: 6px 10px;
198
    /* Espace autour du texte pour créer un bouton */
199
200
    /************/
201
    /* Bordures */
202
    /************/
203
    border-radius: 4px;
204
    /* Coins arrondis pour les liens */
205
206
    /******************/
207
    /* Positionnement */
208
    /******************/
209
    position: relative;
210
    /* Permet de positionner des pseudo-éléments par rapport au lien */
211
    overflow: hidden;
212
    /* Masque tout ce qui dépasse du lien, utile pour l’animation de ::after */
213
214
    /***************/
215
    /* Transitions */
216
    /***************/
217
    transition: color 0.3s ease;
218
    /* Rend le changement de couleur fluide lorsqu'il y a interaction */
219
}
220
221
body>header nav a:hover {
222
    /************/
223
    /* Couleurs */
224
    /************/
225
    background-color: #ddd;
226
    /* Fond gris clair au survol pour indiquer l’interaction */
227
    color: #333;
228
}
229
230
/* --- Barre animée sous le lien (pseudo-élément) --- */
231
body>header nav a::after {
232
    content: "";
233
    /* Nécessaire pour créer un pseudo-élément vide */
234
235
    /******************/
236
    /* Positionnement */
237
    /******************/
238
    position: absolute;
239
    /* Position absolue par rapport au lien parent */
240
    bottom: 0;
241
    /* Positionné en bas du lien */
242
    left: 0;
243
    /* Aligne le pseudo-élément à gauche */
244
245
    /**************/
246
    /* Dimensions */
247
    /**************/
248
    width: 0%;
249
    /* Largeur initiale : 0%, donc invisible */
250
    height: 3px;
251
    /* Hauteur de la barre */
252
253
    /****************************/
254
    /* Couleurs & Arrière-plans */
255
    /****************************/
256
    background: white;
257
    /* Couleur de la barre */
258
259
    /***************/
260
    /* Transitions */
261
    /***************/
262
    transition: width 0.3s ease;
263
    /* Rend l’extension de la barre fluide */
264
}
265
266
/* --- Effet sur le survol de la barre de navigation --- */
267
body>header nav a:hover::after {
268
    width: 100%;
269
    /* La barre s’étend sur toute la largeur du lien */
270
}
271
272
/* --- Effet de clic sur l’élément li du header --- */
273
body>header nav li:active {
274
    /*******************/
275
    /* Transformations */
276
    /*******************/
277
    transform: scale(0.9);
278
    /* Réduit le lien de 10% lors du clic pour effet “pressé” */
279
}
280
281
/* ==========================================================================
282
   Contenu principal (Main)
283
   ========================================================================== */
284
main {
285
    /**********************/
286
    /* Boîte & Espacement */
287
    /**********************/
288
    max-width: 1000px;
289
    margin: auto;
290
}
291
292
/* --- Titre principal du main (h1) --- */
293
main>h1 {
294
    /***************/
295
    /* Typographie */
296
    /***************/
297
    text-align: center;
298
    /* Centre le titre principal du main */
299
    color: #1e3a5f;
300
    /* Couleur bleu foncé */
301
    font-size: 2rem;
302
    /* Taille du texte plus grande */
303
304
    /**********************/
305
    /* Boîte & Espacement */
306
    /**********************/
307
    margin: 20px 0;
308
    /* Espace vertical autour du titre */
309
}
310
311
/* --- Sections et articles principaux du main --- */
312
main>section,
313
main>article {
314
    /**********************/
315
    /* Boîte & Espacement */
316
    /**********************/
317
    margin: 0 auto 40px;
318
    /* Centre horizontalement + marge en bas de 40px */
319
    padding: 0 15px;
320
    /* Espace intérieur gauche/droite de 15px */
321
}
322
323
/* --- Titres de section et d'article (h2) --- */
324
main>section h2,
325
main>article h2 {
326
    /***************/
327
    /* Typographie */
328
    /***************/
329
    color: #1e3a5f;
330
    /* Couleur du titre (bleu foncé) */
331
    font-size: 1.5em;
332
    /* Taille du texte 1,5 fois la taille normale */
333
}
334
335
/* ==========================================================================
336
   Pied de page (Footer)
337
   ========================================================================== */
338
footer {
339
    /***************/
340
    /* Typographie */
341
    /***************/
342
    color: #fff;
343
    /* Texte en blanc */
344
    text-align: center;
345
    /* Centre le texte horizontalement */
346
347
    /**********************/
348
    /* Boîte & Espacement */
349
    /**********************/
350
    padding: 20px;
351
    /* Espace intérieur autour du contenu */
352
353
    /****************************/
354
    /* Couleurs & Arrière-plans */
355
    /****************************/
356
    background: linear-gradient(135deg, #1e3a5f, #0a2340, #224c80, #162d50);
357
    /* Dégradé diagonal combinant plusieurs tons de bleu foncé à clair */
358
    background-size: 200% 200%;
359
    /* Agrandit le gradient pour permettre le déplacement et créer l'animation visuelle */
360
361
    /***************/
362
    /* Transitions */
363
    /***************/
364
    transition: background-position 0.5s ease;
365
    /* Rend le déplacement du gradient fluide sur 0.5 seconde */
366
}
367
368
footer:hover {
369
    background-position: right bottom;
370
    /* Déplace le gradient vers le coin inférieur droit au survol */
371
}
372
373
footer p {
374
    /**********************/
375
    /* Boîte & Espacement */
376
    /**********************/
377
    margin: 0;
378
    /* Supprime la marge par défaut autour du paragraphe */
379
}
380
381
/* --- Réseaux sociaux dans le footer --- */
382
footer .socials {
383
    /***********/
384
    /* Flexbox */
385
    /***********/
386
    display: flex;
387
    justify-content: center;
388
    gap: 20px;
389
390
    /**********************/
391
    /* Boîte & Espacement */
392
    /**********************/
393
    margin-top: 15px;
394
}
395
396
footer .socials a {
397
    /***************/
398
    /* Typographie */
399
    /***************/
400
    font-size: 28px;
401
    color: white;
402
403
    /***************/
404
    /* Transitions */
405
    /***************/
406
    transition: transform 0.3s ease, color 0.3s ease;
407
}
408
409
footer .socials a:hover {
410
    /*******************/
411
    /* Transformations */
412
    /*******************/
413
    transform: translateY(-3px) scale(1.2);
414
415
    /************/
416
    /* Couleurs */
417
    /************/
418
    color: #00a2ff;
419
    /* Changement de couleur au survol */
420
}

Méthodecss/accueil.css

1
/* ==========================================================================
2
   Mise en page Grid (Contenu principal)
3
   ========================================================================== */
4
main {
5
    /***********************/
6
    /* Mise en page (Grid) */
7
    /***********************/
8
    display: grid;
9
    /* Active le mode Grid pour le conteneur principal */
10
    grid-template-columns: 1fr 1fr 1fr;
11
    /* Définit 3 colonnes de taille égale */
12
    grid-template-areas:
13
        "nav   nav   nav"
14
        "about about about"
15
        "competences experiences formations";
16
    /* Définit les zones nommées pour le positionnement des enfants */
17
18
    /**********************/
19
    /* Boîte & Espacement */
20
    /**********************/
21
    gap: 10px;
22
    /* Espace de 10px entre les éléments de la grille */
23
}
24
25
/* --- Assignation des zones de la grille --- */
26
main>nav {
27
    grid-area: nav;
28
    /* Place la navigation dans la zone 'nav' */
29
}
30
31
#about {
32
    grid-area: about;
33
    /* Place la section 'about' dans la zone 'about' */
34
}
35
36
#competences {
37
    grid-area: competences;
38
    /* Place la section 'competences' dans la zone 'competences' */
39
}
40
41
#experiences {
42
    grid-area: experiences;
43
    /* Place la section 'experiences' dans la zone 'experiences' */
44
}
45
46
#formations {
47
    grid-area: formations;
48
    /* Place la section 'formations' dans la zone 'formations' */
49
}
50
51
/* ==========================================================================
52
   Navigation Interne (dans Main)
53
   ========================================================================== */
54
55
/* --- Liste de la navigation interne --- */
56
main nav ul {
57
    /***********/
58
    /* Flexbox */
59
    /***********/
60
    display: flex;
61
    /* Utilise Flexbox pour aligner les éléments horizontalement */
62
    justify-content: center;
63
    /* Centre les éléments dans la ligne */
64
    flex-wrap: wrap;
65
    /* Permet aux éléments de passer à la ligne si l'espace est insuffisant */
66
67
    /**********************/
68
    /* Boîte & Espacement */
69
    /**********************/
70
    gap: 12px;
71
    /* Espace de 12px entre les éléments */
72
    padding: 0;
73
    /* Supprime le padding par défaut de la liste */
74
    margin: 20px 0;
75
    /* Marge verticale de 20px au-dessus et en dessous */
76
77
    /******************/
78
    /* Style de liste */
79
    /******************/
80
    list-style: none;
81
    /* Supprime les puces de la liste */
82
}
83
84
/* --- Liens de la navigation interne --- */
85
main nav a {
86
    /**********************/
87
    /* Boîte & Espacement */
88
    /**********************/
89
    display: inline-block;
90
    /* Permet au lien d'être transformable et de gérer padding/marge */
91
    padding: 6px 12px;
92
    /* Espace intérieur autour du texte */
93
94
    /***************/
95
    /* Typographie */
96
    /***************/
97
    text-decoration: none;
98
    /* Supprime le soulignement par défaut */
99
    color: #fff;
100
    /* Couleur du texte : blanc */
101
    font-weight: bold;
102
    /* Texte en gras */
103
104
    /****************************/
105
    /* Couleurs & Arrière-plans */
106
    /****************************/
107
    background-color: #0073e6;
108
    /* Couleur de fond bleu vif */
109
110
    /************/
111
    /* Bordures */
112
    /************/
113
    border-radius: 6px;
114
    /* Coins arrondis pour un effet "bouton" */
115
116
    /***************/
117
    /* Transitions */
118
    /***************/
119
    transition: transform 0.2s ease;
120
    /* Animation fluide pour le déplacement au survol */
121
}
122
123
/* --- Survol des liens de navigation interne --- */
124
main nav a:hover {
125
    /****************************/
126
    /* Couleurs & Arrière-plans */
127
    /****************************/
128
    background: linear-gradient(135deg, #0073e6, #00a2ff);
129
    /* Dégradé appliqué au survol (prioritaire sur la couleur unie) */
130
131
    /*******************/
132
    /* Transformations */
133
    /*******************/
134
    transform: translateY(-3px) scale(1.05);
135
    /* Soulève le lien et l’agrandit légèrement */
136
}
137
138
/* --- Focus (accessibilité) des liens de navigation interne --- */
139
main nav a:focus {
140
    /*********************/
141
    /* Accessibilité (Focus) */
142
    /*********************/
143
    outline: 3px solid #005bb5;
144
    /* Contour bleu pour l’accessibilité lors du focus clavier */
145
    outline-offset: 2px;
146
    /* Décalage du contour pour éviter qu’il touche le texte */
147
}
148
149
/* ==========================================================================
150
   Sections de Contenu
151
   ========================================================================== */
152
153
/* --- Style général des sections --- */
154
section {
155
    /**********************/
156
    /* Boîte & Espacement */
157
    /**********************/
158
    margin: 20px auto;
159
    /* Marge verticale de 20px et centre horizontalement */
160
    padding: 0 15px;
161
    /* Espace intérieur gauche/droite de 15px */
162
163
    /***********************/
164
    /* Animation & Effets */
165
    /***********************/
166
    opacity: 0;
167
    /* Commence invisible (pour l'animation) */
168
    transform: translateY(15px);
169
    /* Décalage vertical initial pour effet de glissement */
170
    animation: fadeIn 0.8s ease forwards;
171
    /* Animation vers la position finale avec opacité pleine */
172
}
173
174
/* --- Titres de section (h2) --- */
175
section h2 {
176
    /***************/
177
    /* Typographie */
178
    /***************/
179
    font-size: 1.5rem;
180
    /* Taille du titre légèrement plus grande */
181
    color: #1e3a5f;
182
    /* Couleur bleu foncé */
183
184
    /**********************/
185
    /* Boîte & Espacement */
186
    /**********************/
187
    margin-top: 30px;
188
    /* Espace au-dessus du titre */
189
    margin-bottom: 10px;
190
    /* Espace en dessous du titre */
191
    padding-bottom: 5px;
192
    /* Espace entre le texte et la ligne */
193
194
    /************/
195
    /* Bordures */
196
    /************/
197
    border-bottom: 2px solid #ddd;
198
    /* Ligne sous le titre pour le séparer visuellement */
199
}
200
201
/* --- Paragraphes de section --- */
202
section p {
203
    /**********************/
204
    /* Boîte & Espacement */
205
    /**********************/
206
    margin-bottom: 15px;
207
    /* Espace sous les paragraphes */
208
}
209
210
/* ==========================================================================
211
   Éléments de Contenu (Listes, Liens, Adresse)
212
   ========================================================================== */
213
214
/* --- Listes à puces (dans section) --- */
215
section ul {
216
    /**********************/
217
    /* Boîte & Espacement */
218
    /**********************/
219
    padding-left: 20px;
220
    /* Décalage de la liste vers la droite */
221
    margin-bottom: 20px;
222
    /* Espace sous la liste */
223
}
224
225
/* --- Éléments de liste (dans section) --- */
226
section li {
227
    /**********************/
228
    /* Boîte & Espacement */
229
    /**********************/
230
    margin-bottom: 8px;
231
    /* Espace entre les éléments de la liste */
232
}
233
234
/* --- Liens (dans section) --- */
235
section a {
236
    /***************/
237
    /* Typographie */
238
    /***************/
239
    color: #0066cc;
240
    /* Couleur bleue pour les liens */
241
    text-decoration: none;
242
    /* Supprime le soulignement par défaut */
243
}
244
245
section a:hover {
246
    /***************/
247
    /* Typographie */
248
    /***************/
249
    text-decoration: underline;
250
    /* Remet le soulignement au survol */
251
}
252
253
/* --- Balise Adresse --- */
254
address {
255
    /***************/
256
    /* Typographie */
257
    /***************/
258
    font-style: normal;
259
    /* Texte non italique, contrairement au style par défaut */
260
261
    /**********************/
262
    /* Boîte & Espacement */
263
    /**********************/
264
    display: inline;
265
    /* L'adresse s'affiche sur la même ligne si possible */
266
}
267
268
/* ==========================================================================
269
   Classes Utilitaires (Icônes)
270
   ========================================================================== */
271
272
/* --- Base des icônes (pseudo-élément) --- */
273
.icon-about::before,
274
.icon-competences::before,
275
.icon-experiences::before,
276
.icon-formations::before {
277
    /**********************/
278
    /* Boîte & Espacement */
279
    /**********************/
280
    margin-right: 8px;
281
    /* Espace entre l'icône et le texte du titre */
282
}
283
284
/* --- Icônes spécifiques (Emoji) --- */
285
.icon-about::before {
286
    content: "👤";
287
    /* Emoji représentant "À propos" */
288
}
289
290
.icon-competences::before {
291
    content: "💻";
292
    /* Emoji représentant les compétences informatiques */
293
}
294
295
.icon-experiences::before {
296
    content: "📅";
297
    /* Emoji représentant les expériences/agenda */
298
}
299
300
.icon-formations::before {
301
    content: "🎓";
302
    /* Emoji représentant les formations/diplômes */
303
}
304
305
/* ==========================================================================
306
   Animations
307
   ========================================================================== */
308
309
/* --- Délais d'animation pour les sections --- */
310
section:nth-of-type(2) {
311
    animation-delay: 0.2s;
312
    /* Décalage pour que cette section apparaisse après 0.2s */
313
}
314
315
section:nth-of-type(3) {
316
    animation-delay: 0.4s;
317
    /* Décalage pour que cette section apparaisse après 0.4s */
318
}
319
320
section:nth-of-type(4) {
321
    animation-delay: 0.6s;
322
    /* Décalage pour que cette section apparaisse après 0.6s */
323
}
324
325
/* --- Définition de l’animation fadeIn --- */
326
@keyframes fadeIn {
327
    to {
328
        opacity: 1;
329
        /* Devient complètement visible */
330
        transform: translateY(0);
331
        /* Remonte à sa position normale */
332
    }
333
}

Méthodecss/projets.css

1
/* ==========================================================================
2
   Mise en page de la Grille "Projets"
3
   ========================================================================== */
4
.projets {
5
    /***********************/
6
    /* Mise en page (Grid) */
7
    /***********************/
8
    display: grid;
9
    /* Active le mode Grille */
10
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
11
    /* Crée des colonnes responsives : 
12
       - auto-fit: autant de colonnes que possible
13
       - minmax: elles font au moins 300px et s'étendent (1fr) 
14
    */
15
16
    /**********************/
17
    /* Boîte & Espacement */
18
    /**********************/
19
    gap: 20px;
20
    /* Espace entre les articles de la grille */
21
}
22
23
/* ==========================================================================
24
   Titre Principal de la Section "Projets"
25
   ========================================================================== */
26
.projets>h2 {
27
    /***********************/
28
    /* Mise en page (Grid) */
29
    /***********************/
30
    grid-column: 1 / -1;
31
    /* Force le titre à s'étendre sur toutes les colonnes de la grille */
32
33
    /***************/
34
    /* Typographie */
35
    /***************/
36
    text-align: center;
37
    /* Centré horizontalement */
38
    font-size: 1.8rem;
39
    /* Plus grand que les titres d’article */
40
    font-weight: 600;
41
    /* Texte semi-gras */
42
43
    /**********************/
44
    /* Boîte & Espacement */
45
    /**********************/
46
    padding-bottom: 5px;
47
    /* Espace entre le texte et la ligne */
48
49
    /************/
50
    /* Bordures */
51
    /************/
52
    border-bottom: 2px solid #ccc;
53
    /* Ligne discrète sous le titre */
54
}
55
56
/* ==========================================================================
57
   Cartes de Projet (Article)
58
   ========================================================================== */
59
60
/* --- Style de base des articles --- */
61
.projets>article {
62
    /**********************/
63
    /* Boîte & Espacement */
64
    /**********************/
65
    padding: 10px;
66
    /* Espace intérieur */
67
68
    /****************************/
69
    /* Couleurs & Arrière-plans */
70
    /****************************/
71
    /* background: #f9f9f9;  <- Redondant, écrasé par le gradient */
72
    background: linear-gradient(135deg, #ffffff 0%, #f0f8ff 25%, #d0f0ff 50%, #f0f8ff 75%, #ffffff 100%);
73
    background-size: 300% 300%;
74
    /* Agrandit le gradient pour l'animation */
75
76
    /********************/
77
    /* Bordures & Ombre */
78
    /********************/
79
    border: 1px solid #ddd;
80
    /* Bordure légère */
81
    border-radius: 8px;
82
    /* Coins arrondis */
83
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
84
    /* Ombre discrète */
85
86
    /***************/
87
    /* Typographie */
88
    /***************/
89
    text-align: left;
90
    /* Aligne le texte à gauche (par défaut) */
91
92
    /******************/
93
    /* Positionnement */
94
    /******************/
95
    position: relative;
96
    /* Requis pour certains effets ou enfants positionnés */
97
98
    /***************/
99
    /* Transitions */
100
    /***************/
101
    transition: transform 0.3s ease, box-shadow 0.3s ease;
102
    /* Transition fluide pour le survol */
103
}
104
105
/* --- Survol des articles --- */
106
.projets>article:hover {
107
    /*******************/
108
    /* Transformations */
109
    /*******************/
110
    transform: translateY(-5px);
111
    /* Soulève légèrement la carte */
112
113
    /********************/
114
    /* Bordures & Ombre */
115
    /********************/
116
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
117
    /* Ombre plus prononcée */
118
119
    /*************/
120
    /* Animation */
121
    /*************/
122
    animation: gradientMove 3s linear infinite;
123
    /* Démarre l'animation du fond */
124
}
125
126
/* ==========================================================================
127
   Contenu des Cartes (Typo, Images, Liens)
128
   ========================================================================== */
129
130
/* --- Titres des projets (h3) --- */
131
.projets h3 {
132
    /**********************/
133
    /* Boîte & Espacement */
134
    /**********************/
135
    margin-top: 0;
136
    /* Supprime la marge haute par défaut */
137
138
    /***************/
139
    /* Typographie */
140
    /***************/
141
    font-size: 1.1rem;
142
    /* Taille de police */
143
}
144
145
/* --- Paragraphes des projets --- */
146
.projets p {
147
    /***************/
148
    /* Typographie */
149
    /***************/
150
    font-size: 0.9rem;
151
    /* Taille de police réduite */
152
    color: #333;
153
    /* Couleur de texte gris foncé */
154
}
155
156
/* --- Conteneur Figure (pour image) --- */
157
.projets figure {
158
    /**********************/
159
    /* Boîte & Espacement */
160
    /**********************/
161
    margin: 0;
162
    /* Supprime la marge par défaut */
163
    padding: 0;
164
    /* Supprime le padding par défaut */
165
}
166
167
/* --- Images des projets (fusion des doublons) --- */
168
.projets figure img {
169
    /**************/
170
    /* Dimensions */
171
    /**************/
172
    width: 100%;
173
    /* Prend toute la largeur de la carte */
174
    height: auto;
175
    /* Garde les proportions */
176
177
    /**********************/
178
    /* Boîte & Espacement */
179
    /**********************/
180
    display: block;
181
    /* Évite les marges blanches sous l'image */
182
    margin-bottom: 8px;
183
    /* Espace sous l'image */
184
185
    /************/
186
    /* Bordures */
187
    /************/
188
    border-radius: 4px;
189
    /* Coins arrondis légers */
190
    border: 1px solid #ccc;
191
    /* Bordure grise */
192
193
    /***************/
194
    /* Transitions */
195
    /***************/
196
    transition: transform 0.3s ease, box-shadow 0.3s ease;
197
    /* Animation au survol */
198
}
199
200
/* --- Survol des images --- */
201
.projets figure img:hover {
202
    /*******************/
203
    /* Transformations */
204
    /*******************/
205
    transform: scale(1.05);
206
    /* Agrandit l'image */
207
208
    /********************/
209
    /* Bordures & Ombre */
210
    /********************/
211
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
212
    /* Ombre plus marquée */
213
}
214
215
/* --- Légendes des images --- */
216
.projets figure figcaption {
217
    /***************/
218
    /* Typographie */
219
    /***************/
220
    font-size: 0.85rem;
221
    /* Petite taille de police */
222
    color: #666;
223
    /* Couleur gris moyen */
224
    text-align: center;
225
    /* Texte centré */
226
}
227
228
/* --- Liens des projets --- */
229
.projets a {
230
    /**********************/
231
    /* Boîte & Espacement */
232
    /**********************/
233
    display: inline-block;
234
    /* Permet d'appliquer transform */
235
236
    /***************/
237
    /* Typographie */
238
    /***************/
239
    text-decoration: none;
240
    /* Pas de soulignement par défaut */
241
    color: #0066cc;
242
    /* Couleur bleue */
243
    font-weight: bold;
244
    /* Texte en gras */
245
246
    /***************/
247
    /* Transitions */
248
    /***************/
249
    transition: color 0.3s ease, transform 0.2s ease;
250
    /* Animation sur couleur et position */
251
}
252
253
/* --- Survol des liens --- */
254
.projets a:hover {
255
    /***************/
256
    /* Typographie */
257
    /***************/
258
    color: #004a99;
259
    /* Bleu plus foncé */
260
    text-decoration: underline;
261
    /* Soulignement au survol */
262
263
    /*******************/
264
    /* Transformations */
265
    /*******************/
266
    transform: translateY(-2px) scale(1.05);
267
    /* Léger saut et zoom */
268
}
269
270
/* --- Focus (accessibilité) des liens --- */
271
.projets a:focus {
272
    /*********************/
273
    /* Accessibilité (Focus) */
274
    /*********************/
275
    outline: 3px solid #005bb5;
276
    /* Contour visible pour la navigation clavier */
277
    outline-offset: 2px;
278
    /* Espace entre le lien et le contour */
279
}
280
281
/* ==========================================================================
282
   Animations (Keyframes)
283
   ========================================================================== */
284
285
/* --- Animation du gradient au survol des cartes --- */
286
@keyframes gradientMove {
287
    0% {
288
        background-position: 0% 0%;
289
        /* Début en haut à gauche */
290
    }
291
292
    50% {
293
        background-position: 100% 100%;
294
        /* Milieu en bas à droite */
295
    }
296
297
    100% {
298
        background-position: 0% 0%;
299
        /* Retour au début */
300
    }
301
}

Méthodecss/projet.css

1
/* ==========================================================================
2
   En-tête d'Article
3
   ========================================================================== */
4
5
/* --- Conteneur de l'en-tête (article>header) --- */
6
article>header {
7
    /**********************/
8
    /* Boîte & Espacement */
9
    /**********************/
10
    margin-bottom: 30px;
11
    /* Espace sous le header pour séparer du contenu suivant */
12
13
    /***************************/
14
    /* Alignement & Typographie */
15
    /***************************/
16
    text-align: center;
17
    /* Centre le contenu horizontalement (texte, images, etc.) */
18
}
19
20
/* --- Image de l'en-tête d'article --- */
21
article>header img {
22
    /**************/
23
    /* Dimensions */
24
    /**************/
25
    max-width: 100%;
26
    /* L'image ne dépasse jamais la largeur de son conteneur (responsive) */
27
    height: auto;
28
    /* Conserve les proportions de l'image lors du redimensionnement */
29
30
    /**********************/
31
    /* Boîte & Espacement */
32
    /**********************/
33
    margin-top: 20px;
34
    /* Espace au-dessus de l'image pour détachement visuel */
35
36
    /********************/
37
    /* Bordures & Ombre */
38
    /********************/
39
    border-radius: 8px;
40
    /* Bords légèrement arrondis */
41
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
42
    /* Ombre légère pour donner de la profondeur */
43
}
44
45
/* ==========================================================================
46
   Titres de Section (H2)
47
   ========================================================================== */
48
49
/* --- Style commun des H2 de section (avec icônes) --- */
50
section h2 {
51
    /***********/
52
    /* Flexbox */
53
    /***********/
54
    display: flex;
55
    /* Permet d'aligner l'icône (pseudo-élément) et le texte */
56
    align-items: center;
57
    /* Centre verticalement l'icône et le texte */
58
59
    /**********************/
60
    /* Boîte & Espacement */
61
    /**********************/
62
    gap: 0.5em;
63
    /* Espace entre le symbole (::before) et le texte */
64
    margin-bottom: 1rem;
65
    /* Espace sous le titre */
66
67
    /***************/
68
    /* Typographie */
69
    /***************/
70
    font-size: 1.5rem;
71
    /* Taille de la police */
72
}
73
74
/* ==========================================================================
75
   Icônes des Titres (Pseudo-éléments)
76
   ========================================================================== */
77
78
/* --- Icône Description 📝 --- */
79
#description-projet::before {
80
    /***********************/
81
    /* Contenu (Pseudo-élément) */
82
    /***********************/
83
    content: "\1F4DD";
84
    /* Emoji "Note" (📝) */
85
}
86
87
/* --- Icône Objectifs 🎯 --- */
88
#objectifs-projet::before {
89
    /***********************/
90
    /* Contenu (Pseudo-élément) */
91
    /***********************/
92
    content: "\1F3AF";
93
    /* Emoji "Cible" (🎯) */
94
}
95
96
/* --- Icône Compétences 🛠️ --- */
97
#competences-visees::before {
98
    /***********************/
99
    /* Contenu (Pseudo-élément) */
100
    /***********************/
101
    content: "\1F6E0";
102
    /* Emoji "Outils" (🛠️) */
103
}
104
105
/* --- Icône Résultat ✅ --- */
106
#resultat-projet::before {
107
    /***********************/
108
    /* Contenu (Pseudo-élément) */
109
    /***********************/
110
    content: "\2705";
111
    /* Emoji "Coche" (✅) */
112
}

Exemple

See the Pen Séance 9-index by Vincent-Vanneste (@vincent-vanneste) on CodePen.

Séance 9- Accueil

Exemple

See the Pen Séance 9-projets by Vincent-Vanneste (@vincent-vanneste) on CodePen.

Séance 9- Projets

Exemple

See the Pen Séance 9-projet1 by Vincent-Vanneste (@vincent-vanneste) on CodePen.

Séance 9- Projet1