Niveau 29 — DevTools

Le Débogage avec les DevTools

Les outils de développement des navigateurs sont vos meilleurs alliés pour comprendre, inspecter et corriger le CSS. Maîtrisez chaque panneau pour déboguer efficacement.

1. Comprendre les DevTools

En une phrase : Les DevTools (Outils de développement) sont des outils de debug intégrés dans chaque navigateur, permettant d'inspecter le DOM, modifier le CSS en temps réel, mesurer la performance et déboguer les problèmes de rendu.

Chaque navigateur moderne possède ses DevTools : Chrome DevTools (le plus complet), Firefox DevTools (excellent pour le CSS), Safari Web Inspector, Edge DevTools (basé sur Chrome). Les fonctionnalités sont similaires.

DEVTOOLS — PANNEAUX PRINCIPAUX
═══════════════════════════════

  ┌─────────────────────────────────────────────┐
  │ Elements/Inspector │ Console │ Sources      │
  │─────────────────────│─────────│──────────────│
  │ • DOM tree           │ • Logs  │ • Fichiers   │
  │ • Styles panel       │ • Erreurs│ • Breakpoints│
  │ • Computed           │ • Commandes│ • Snippets │
  │ • Box Model          │         │              │
  │• Event Listeners     │         │              │
  ├─────────────────────┼─────────┼──────────────┤
  │ Performance │ Lighthouse │ Application     │
  │─────────────│─────────────│─────────────────│
  │ • Frames    │ • Score     │ • LocalStorage  │
  │ • Recording │ • Métriques │ • SessionStorage│
  │ • Paint     │ • Audit     │ • Cookies       │
  │ • Layout    │ • Rapport   │ • Cache         │
  └─────────────────────────────────────────────┘

Vue d'ensemble des panneaux principaux des DevTools

Ouvrir les DevTools

F12 Ouvre/ferme les DevTools
Ctrl+Shift+I Ouvre les DevTools (alternatif)
Ctrl+Shift+C Mode inspecter (sélectionner un élément)
Clic droit → Inspecter Inspecte l'élément cliqué

2. Les panneaux en détail

2.1 Panneau Elements/Inspector

Définition : Le panneau Elements affiche l'arbre DOM complet et permet d'inspecter, modifier et ajouter du CSS en temps réel. C'est le panneau le plus utilisé pour le debug CSS.

🌳 DOM tree

  • Navigation dans l'arbre HTML
  • Ajouter/modifier/supprimer des éléments
  • Développer/replier les nœuds
  • Rechercher avec Ctrl+F

🎨 Styles panel

  • Voir toutes les règles CSS appliquées
  • Modifier les propriétés en direct
  • Ajouter de nouvelles règles
  • Activer/désactiver les propriétés (checkbox)

📐 Computed styles

  • Voir la valeur finale de chaque propriété
  • Arbre des héritages
  • Filtrer par propriété
  • Cliquez pour voir d'où vient la valeur

📦 Box Model

  • Visualisation du modèle de boîte
  • Modifier margin/padding/border en direct
  • Cliquez pour éditer les valeurs
  • Toggle content-box vs border-box

🔘 Pseudo-classes

  • Activer :hover, :focus, :active, :disabled
  • Tester les états sans interaction
  • Simuler :nth-child, :checked, etc.
  • Basculer les états facilement

🎭 Ajouter/Révoquer des classes

  • Bouton ".cls" pour ajouter des classes
  • Toggle rapide des classes
  • Tester des variantes rapidement
  • Simuler des états (active, disabled…)
/* Les DevTools vous permettent de modifier le CSS en direct */
/* Les changements sont TEMPORAIRES (pas sauvegardés) */

/* Pour sauvegarder les changements : */
/* 1. Chrome : Ctrl+S dans l'onglet Sources */
/* 2. Firefox : click droit sur le fichier → "Save Changes" */
/* 3. Utiliser les Overrides (Chrome) pour persister */

/* Dans l'onglet Styles, vous pouvez : */
/* - Cliquer sur une valeur pour la modifier */
/* - Cocher/décocher pour activer/désactiver */
/* - Cliquer sur + pour ajouter une nouvelle règle */
/* - Ajouter un sélecteur personnalisé */
/* - Voir les propriétés barrées (écrasées par la cascade) */

2.2 Panneau Styles en détail

Définition : Le panneau Styles affiche toutes les règles CSS qui s'appliquent à l'élément sélectionné, dans l'ordre de la cascade. Les règles barrées sont écrasées par des règles plus spécifiques.
/* Ordre d'affichage dans le panneau Styles */
/* ═══════════════════════════════════════════ */

/* 1. element.style { } — styles inline */
/* 2. Règles de classes (.classe) */
/* 3. Règles d'éléments (div, p, etc.) */
/* 4. Héritage (propriétés héritées, en gris) */
/* 5. * { } — propriétés universelles */
/* 6. user agent stylesheet — styles du navigateur */

/* Les propriétés barrées (text-decoration: line-through) */
/* sont écrasées par une règle plus spécifique */

/* Specificity visualization : */
/* Les DevTools affichent la specificty dans l'infobulle */
/* hover sur un sélecteur pour voir sa pondération */

/* Exemple : */
/* .btn            → 0,1,0,0 */
/* #header .btn    → 1,1,0,0 */
/* .btn.active     → 0,2,0,0 */
/* div#header      → 1,0,1,0 */

2.3 Box Model visualizer

Visualisation du modèle de boîte

10
10
10
10
border
padding
content
10
10
10
10

Cliquez sur chaque zone dans les DevTools pour modifier les valeurs directement

2.4 Inspecteur Flexbox et Grid

/* Chrome/Firefox offrent des inspecteurs visuels */
/* pour Flexbox et Grid */

/* FLEXBOX INSPECTOR */
/* 1. Sélectionnez un élément display: flex */
/* 2. Les axes sont surlignés dans l'élément */
/* 3. Le panneau Layout montre : */
/*    - Direction (row/column) */
/*    - Justify-content (axe principal) */
/*    - Align-items (axe secondaire) */
/*    - Gap */
/* 4. Modifiez les valeurs pour voir l'effet en direct */

/* GRID INSPECTOR */
/* 1. Sélectionnez un élément display: grid */
/* 2. L'overlay montre les lignes et colonnes numérotées */
/* 3. Le panneau Layout montre : */
/*    - grid-template-columns / rows */
/*    - gap */
/*    - Taille des tracks */
/* 4. Modifiez les valeurs pour voir la grille en direct */
1
2
3

Inspecteur Flexbox : Sélectionnez un display: flex dans les DevTools pour voir l'axe principal et secondaire surlignés.

1
2
3
4
5
6

L'overlay Grid montre les numéros de lignes et colonnes directement sur la page

2.5 Mode Responsive / Device

/* Le mode Responsive simule différentes tailles d'écran */
/* Raccourci : Ctrl+Shift+M (ou le bouton mobile/tablette) */

/* Fonctionnalités : */
/* 1. Simulation de devices (iPhone, iPad, Galaxy…) */
/* 2. Tailles personnalisées */
/* 3. Simulation tactile (touch events) */
/* 4. DPR (Device Pixel Ratio) */
/* 5. Orientation (portrait/paysage) */
/* 6. Thème (prefers-color-scheme) */
/* 7. Reduced motion (prefers-reduced-motion) */

/* Pour déboguer le responsive : */
/* 1. Activer le mode Responsive */
/* 2. Redimensionner la zone de rendu */
/* 3. Observer quand les media queries s'activent */
/* 4. L'overlay affiche la taille actuelle */
/* 5. Tester les breakpoints un par un */
375 × 812 — iPhone 13

Mode Responsive

Simulez différentes tailles d'écran pour tester le responsive design. Les media queries s'affichent dans l'overlay.

2.6 Panneau Performance

/* L'onglet Performance mesure le rendu en temps réel */
/* Raccourci : Ctrl+Shift+P → "Performance" */

/* Fonctionnalités clés : */
/* 1. Enregistrement d'une session d'activité */
/* 2. FPS meter en temps réel */
/* 3. Paint flashing (surbrillance verte) */
/* 4. Layout shift regions */
/* 5. Layer borders */
/* 6. Rendering metrics */

/* Pour activer les overlays de debug : */
/* Chrome DevTools → Rendering panel (Ctrl+Shift+P → "Rendering") */

/* Options utiles : */
/* - Paint flashing     : souligne les régions peintes en vert */
/* - Layout shift regions : montre les zones de CLS en bleu */
/* - Layer borders      : affiche les bordures des calques GPU */
/* - FPS meter          : affiche les FPS en haut à droite */
/* - Emulate CSS media  : simule prefers-color-scheme, etc. */

2.7 Outil de couverture CSS

/* Chrome : Ctrl+Shift+P → "Coverage" */
/* Firefox : Onglet "Toggle Coverage" dans la toolbar */

/* L'outil de couverture montre : */
/* - Le % de CSS utilisé vs inutilisé */
/* - Ligne par ligne, les parties inutilisées (en rouge) */
/* - Permet d'identifier le CSS à supprimer ou reporter */

/* Comment l'utiliser : */
/* 1. Ouvrir l'outil Coverage */
/* 2. Cliquer sur le bouton d'enregistrement */
/* 3. Naviguer sur la page (interagir) */
/* 4. Arrêter l'enregistrement */
/* 5. Voir le rapport : % utilisé par fichier */
/* 6. Identifier les sélecteurs/propriétés inutilisés */

/* Exemple de résultat : */
/* styles.css:    45% utilisé ████████░░░░ */
/* critical.css:  92% utilisé ████████████ */
/* components.css: 30% utilisé ██████░░░░░░ */

2.8 Déboguer les problèmes CSS courants

Élément non visible

Causes : overflow: hidden, display: none, visibility: hidden, z-index, opacity: 0

Debug : Vérifier le computed display, visibility, opacity. Utiliser l'onglet Event Listeners pour voir si un JS le cache.

Layout qui casse

Causes : box-sizing, float non clearé, position absolu sans repère, flex/grid mal configuré

Debug : Inspecter le computed box-sizing. Vérifier les float avec l'overlay Flexbox. Utiliser le Box Model visualizer.

Couleur qui ne s'applique pas

Causes : Spécificité insuffisante, cascade, !important manquant, variable CSS non définie

Debug : Voir le panneau Styles pour les propriétés barrées. Vérifier la specificty. Tester en ajoutant une règle inline.

Responsive qui ne marche pas

Causes : viewport meta manquant, media query mal ordonnée, unité non responsive

Debug : Vérifier <meta name="viewport">. Tester avec le mode Responsive. Vérifier l'ordre des media queries (mobile-first vs desktop-first).

/* DÉBOGAGE PAR DÉFAUT — ajouter temporairement */
* { outline: 1px solid red; }    /* Voir tous les éléments */
* { background: rgba(255,0,0,0.1); } /* Zones rouges semi-transparentes */
* { box-shadow: 0 0 0 1px red; } /* Bordures sur tout */

/* DÉBOGAGE DES SPECIFICITÉS */
/* Ajouter une règle avec une valeur impossible */
.debug-specif {
  color: magenta !important;  /* Si elle s'applique, c'est la bonne */
  /* Si elle ne s'applique pas, une règle plus spécifique gagne */
}

/* DÉBOGAGE DES VARIABLES CSS */
.debug-var {
  outline: 2px solid var(--ma-variable, magenta);
  /* Si l'outline est magenta, la variable n'est pas définie */
}

3. Visualisation

3.1 Résumé des raccourcis DevTools

F12 Ouvrir les DevTools
Ctrl+Shift+C Mode inspecter
Ctrl+Shift+M Mode Responsive
Ctrl+Shift+P Command palette
Ctrl+F Rechercher dans les DevTools
Ctrl+Shift+E Éditer le HTML
↑ / ↓ Naviguer dans les styles
Tab Éditer la valeur suivante
Ctrl+Z Annuler un changement CSS
Ctrl+Shift+O Rechercher un fichier
Esc Console oufermer le panneau
Ctrl+Shift+F Recherche dans les fichiers

3.2 Flux de débogage CSS

FLUX DE DÉBOGAGE CSS
════════════════════

  1. IDENTIFIER le problème
     └── Qu'est-ce qui ne va pas visuellement ?

  2. INSPECTER l'élément
     ├── Clic droit → Inspecter
     ├── Ou Ctrl+Shift+C → cliquer sur l'élément
     └── Voir le DOM tree et les styles

  3. ANALYSER les styles
     ├── Le panneau Styles montre toutes les règles
     ├── Les propriétés barrées sont écrasées
     └── Le panneau Computed montre la valeur finale

  4. VÉRIFIER la cascade
     ├── Quel sélecteur gagne ? (spécificité)
     ├── L'ordre d'importance est-il correct ?
     └── Y a-t-il un !important ?

  5. MODIFIER en direct
     ├── Cliquer sur une valeur pour éditer
     ├── Ajouter une nouvelle règle (+)
     ├── Activer/désactiver (checkbox)
     └── Toggle les classes (.cls)

  6. TESTER les états
     ├── :hover, :focus, :active
     ├── :disabled, :checked
     ├── :nth-child, :first-child
     └── Mode responsive

  7. VALIDER
     ├── Tester sur différentes tailles
     ├── Vérifier les contrastes
     ├── Mesurer les performances
     └── Copier le code corrigé

Flux méthodologique pour déboguer un problème CSS

3.3 Outils de debug par problème

Problème Outil DevTools Action
Spécificité Panel Styles Hover sur le sélecteur pour voir la pondération
Layout cassé Box Model + computed Vérifier les dimensions, padding, margin
Flexbox/Grid Overlay visuel Sélectionner le conteneur pour voir les axes
Z-index Computed panel Voir le stacking context
Animation Panel Animation Inspecter les keyframes en direct
Performance Rendering panel Paint flashing, FPS meter, Layout shifts
CSS inutilisé Coverage tool Identifier le code mort

4. Exemples progressifs

4.1 Étape par étape : Déboguer un menu cassé

1

Identifier le problème

Le menu hamburger ne s'aligne pas à droite sur mobile.

2

Inspecter l'élément

Clic droit sur le menu → Inspecter. Voir le DOM tree et les styles appliqués.

3

Vérifier le computed

Le panneau Computed montre que la width est de 200px au lieu de 100%. Un sélecteur parent écrase la valeur.

4

Trouver la cause

Le panneau Styles montre une règle barrée : .nav { width: 200px; } a une spécificité plus haute.

5

Corriger en direct

Ajouter une règle plus spécifique ou modifier la règle existante. Tester le résultat immédiatement.

6

Sauvegarder

Copier le CSS corrigé dans le fichier source. Tester sur d'autres tailles d'écran.

4.2 Techniques de debug CSS

/* === TECHNIQUE 1 : Surbrillance de tous les éléments === */
/* Dans la console DevTools : */
$0.style.outline = "1px solid red";
// $0 = l'élément sélectionné dans l'onglet Elements

/* Pour tous les éléments : */
document.querySelectorAll('*').forEach(el => {
  el.style.outline = "1px solid rgba(255,0,0,0.2)";
});

/* === TECHNIQUE 2 : Identifier le z-index === */
/* Dans le panneau Computed → z-index */
/* Ou dans la console : */
getComputedStyle($0).zIndex;

/* === TECHNIQUE 3 : Voir les variables CSS === */
/* Dans le panneau Styles → :root */
/* Ou dans la console : */
getComputedStyle(document.documentElement)
  .getPropertyValue('--ma-variable');

/* === TECHNIQUE 4 : Simuler un état === */
/* Panneau Styles → Toggle :hover, :focus, etc. */
/* Ou ajouter temporairement une classe : */
$0.classList.add('is-active');

/* === TECHNIQUE 5 : Mesurer une distance === */
/* Outil Measure (Chrome) : Ctrl+Shift+P → "Show Ruler" */
/* Ou l'outil de measuring dans le panneau Computed */

4.3 Debugging des media queries

/* Dans le mode Responsive (Ctrl+Shift+M) : */
/* 1. L'overlay montre la taille actuelle */
/* 2. Les media queries actives sont listées */
/* 3. Vous pouvez voir quel breakpoint s'applique */

/* Vérifications courantes : */
/* 1. Le viewport meta est-il présent ? */
/* <meta name="viewport" content="width=device-width, initial-scale=1.0"> */

/* 2. L'ordre des media queries est-il correct ? */
/* Mobile-first : @media (min-width: 768px) {} */
/* Desktop-first : @media (max-width: 767px) {} */
/* ⚠️ Mélanger les deux crée des conflits */

/* 3. Les unités sont-elles responsives ? */
/* ✅ rem, em, %, vw, vh, clamp() */
/* ❌ px fixes pour les tailles de texte */

4.4 Debugging de la performance

/* Chrome DevTools → Rendering (Ctrl+Shift+P → "Rendering") */

/* 1. Paint Flipping (surbrillance verte) */
/* Activez → naviguez → les zones vertes = repaint */
/* Si trop de zones vertes = problème de performance */

/* 2. Layout Shift Regions (zones bleues) */
/* Activez → naviguez → les zones bleues = CLS */
/* Chaque zone bleue = un layout shift mesuré */

/* 3. Layer Borders */
/* Activez → les calques GPU sont entourés de bordures */
/* Utile pour vérifier will-change et layer promotion */

/* 4. FPS Meter */
/* Activez → affiche les FPS en temps réel en haut */
/* Idéal : 60fps constant, pas de dips */

/* 5. Emulate CSS media features */
/* Simule prefers-color-scheme, prefers-reduced-motion, etc. */
/* Utile pour tester les media queries sans changer les settings */

5. Erreurs fréquentes

Erreur 1 : Confondre les changements temporaires et permanents
/* FAUX — les modifications dans les DevTools sont TEMPORAIRES */
/* Elles disparaissent au rechargement de la page */
/* Pour sauvegarder : utiliser les Overrides (Chrome) */
/* ou copier le code corrigé dans le fichier source */

/* CORRECT — sauvegarder les changements */
/* Chrome : Sources → Overrides → choisir un dossier */
/* Les modifications seront persistées dans ce dossier */
Erreur 2 : Ne pas vérifier le computed
/* FAUX — seulement regarder le panneau Styles */
/* Le panneau Styles montre les règles, pas la valeur finale */

/* CORRECT — toujours vérifier le Computed */
/* Le panneau Computed montre la VALEUR FINALE */
/* après cascade, héritage et calc() */
Erreur 3 : Ignorer l'héritage
/* FAUX — ne regarder que le style de l'élément */
/* Certaines propriétés sont héritées du parent */
/* Elles apparaissent en gris dans le panneau Styles */

/* CORRECT — remonter dans l'arbre DOM */
/* Si une propriété est héritée, vérifiez le parent */
/* color, font-*, line-height, visibility sont héritées */
Erreur 4 : Ne pas utiliser la console pour les variables CSS
/* FAUX — chercher visuellement les variables */
/* dans le panneau Styles de chaque élément */

/* CORRECT — utiliser la console */
const styles = getComputedStyle(document.documentElement);
console.log(styles.getPropertyValue('--ma-variable'));
// Affiche la valeur calculée de la variable
Erreur 5 : Ne pas tester les états hover/focus
/* FAUX — seulement regarder l'état normal */
/* Beaucoup de bugs sont dans les états :hover, :focus */

/* CORRECT — activer les pseudo-classes dans les DevTools */
/* Styles panel → ':hov' → cocher :hover, :focus, etc. */
/* Ou utiliser Ctrl+Shift+P → "Toggle element state" */
Erreur 6 : Ne pas vérifier les erreurs console
/* FAUX — ignorer les messages de la console */
/* Les erreurs CSS (propriétés invalides) apparaissent en jaune */

/* CORRECT — toujours vérifier la console */
/* Les erreurs CSS indiquent : */
/* - Propriété inconnue (faute de frappe ?) */
/* - Valeur invalide (unité manquante ?) */
/* - Variable non définie (fallback manquant ?) */
Erreur 7 : Oublier le mode Responsive
/* FAUX — ne tester que sur desktop */
/* Le problème peut être invisible sur une seule taille */

/* CORRECT — systématiquement tester le Responsive */
/* Ctrl+Shift+M → tester au moins sur : */
/* - 320px (mobile petit) */
/* - 375px (mobile standard) */
/* - 768px (tablette) */
/* - 1024px (desktop) */
/* - 1440px (grand écran) */
Erreur 8 : Ne pas utiliser l'outil Coverage
/* FAUX — garder tout le CSS sans le vérifier */
/* Beaucoup de CSS est inutilisé (30-70% en moyenne) */

/* CORRECT — auditer avec Coverage */
/* Ctrl+Shift+P → "Coverage" → enregistrer → naviguer */
/* Identifier le CSS mort pour le supprimer ou reporter */

6. Bonnes pratiques

Les règles d'or du débogage CSS :
  • Toujours inspecter d'abord — ne jamais deviner, utiliser les DevTools.
  • Vérifier le Computed — la valeur finale après cascade est ce qui s'affiche.
  • Tester tous les états — hover, focus, disabled, nth-child…
  • Tester le Responsive — au moins 3 tailles d'écran différentes.
  • Utiliser la console — pour lire les variables CSS et les computed styles.
  • Sauvegarder les changements — utiliser les Overrides, pas juste le panneau Styles.
  • Auditer le CSS inutilisé — l'outil Coverage identifie le code mort.
  • Tester la performance — Paint flashing, FPS meter, Layout shifts.
Outils de debug CSS recommandés :
/* Chrome DevTools — le plus complet */
/* → Elements, Styles, Computed, Box Model, Console */
/* → Rendering panel, Coverage, Performance */

/* Firefox DevTools — excellent pour le CSS */
/* → Inspector, Rule view, Fonts panel */
/* → Grid inspector (le meilleur) */
/* → Animations panel */

/* Extensions utiles : */
/* - axe DevTools (accessibilité) */
/* - Wappalyzer (technologies utilisées) */
/* - CSS Grid Overlay (visualisation de grille) */
/* - WhatFont (identification des polices) */
/* - VisBug (outil de design interactif) */

/* Outils en ligne : */
/* - Chrome DevTools Remote Debug */
/* - polypane.app (multi-viewport) */
/* - responsivedesignchecker.com */

7. Mini-défi

Défi 1 : Trouver la spécificité

Utilisez les DevTools pour identifier pourquoi un sélecteur gagne sur un autre. Ajoutez deux règles conflictuelles et observez le panneau Styles.

/* Créez ce conflit et inspectez : */
.primaire { color: blue; }       /* spec: 0,1,0 */
.div.primaire { color: red; }    /* spec: 0,2,0 — gagne ! */

/* Dans les DevTools, vous verrez : */
/* - color: blue barré (écrasé) */
/* - color: red actif */

/* La spécificité de .div.primaire est plus haute */

Défi 2 : Identifier le layout cassé

Utilisez le Box Model visualizer pour comprendre pourquoi un élément déborde de son conteneur.

/* Symptôme : un élément déborde à droite */
/* Dans les DevTools : */
/* 1. Sélectionner l'élément */
/* 2. Voir le Box Model : width + padding + border > parent */
/* 3. Vérifier box-sizing : content-box vs border-box */
/* 4. Solution : box-sizing: border-box ou width réduit */

Défi 3 : Trouver le CSS inutilisé

Utilisez l'outil Coverage pour identifier les sélecteurs CSS qui ne s'appliquent à aucun élément de la page.

/* Étapes : */
/* 1. Ctrl+Shift+P → "Coverage" */
/* 2. Cliquer sur le bouton d'enregistrement */
/* 3. Naviguer sur la page (scroller, hover, cliquer) */
/* 4. Arrêter l'enregistrement */
/* 5. Voir le rapport par fichier */
/* 6. Les lignes en rouge = CSS inutilisé */

Défi 4 : Tester le mode Responsive

Utilisez le mode Responsive pour identifier à quel breakpoint un layout passe de colonne unique à deux colonnes.

/* Étapes : */
/* 1. Ctrl+Shift+M pour activer le mode Responsive */
/* 2. Réduire progressivement la largeur */
/* 3. Observer quand le layout change */
/* 4. Noter la largeur exacte du breakpoint */
/* 5. Vérifier quel media query correspond */

Défi 5 : Lire les variables CSS

Utilisez la console pour lire la valeur d'une variable CSS et la modifier dynamiquement.

/* Lire une variable CSS */
const styles = getComputedStyle(document.documentElement);
const primary = styles.getPropertyValue('--color-primary');
console.log('Valeur actuelle:', primary);

/* Modifier une variable CSS */
document.documentElement.style.setProperty('--color-primary', '#7c3aed');

/* Vérifier que le changement est appliqué */
const newVal = getComputedStyle(document.documentElement)
  .getPropertyValue('--color-primary');
console.log('Nouvelle valeur:', newVal);

8. Projets pratiques

Projet 1 : Audit de style

Audittez un site web avec les DevTools :

  • Identifier les CSS inutilisés (Coverage tool)
  • Trouver les sélecteurs à optimiser
  • Vérifier le contraste des couleurs
  • Tester la navigation au clavier
  • Mesurer les Layout Shifts
  • Rédiger un rapport avec les recommandations

Projet 2 : Débogage de composant

Créez un composant cassé volontairement et déboguez-le :

  • Un menu cassé sur mobile
  • Un formulaire avec des labels manquants
  • Une carte avec z-index incorrect
  • Une animation qui saute
  • Documenter chaque problème et sa solution

Projet 3 : Guide de debug CSS

Créez un guide personnel de débogage CSS :

  • Checklist des vérifications courantes
  • Screenshots des DevTools avec annotations
  • Cheatsheet des raccourcis clavier
  • Workflow de debug pour chaque type de problème

9. Révision

Récapitulatif des concepts clés

Panneau / Outil Fonction Raccourci
Elements/Inspector Inspecter le DOM et le CSS F12, Ctrl+Shift+C
Styles panel Voir/modifier les règles CSS Onglet Elements → Styles
Computed styles Voir la valeur finale de chaque propriété Onglet Elements → Computed
Box Model Visualiser margin/padding/border Onglet Elements → Computed → Box Model
Pseudo-classes Simuler :hover, :focus, etc. Styles → :hov
Responsive Simuler les devices Ctrl+Shift+M
Rendering Paint, FPS, Layout shifts Ctrl+Shift+P → "Rendering"
Coverage CSS utilisé vs inutilisé Ctrl+Shift+P → "Coverage"
Performance Enregistrer et analyser le rendu Onglet Performance
Console Lire/modifier les variables CSS Esc, ou onglet Console

Quiz rapide

  1. Quel raccourci ouvre les DevTools ?
  2. Quel panneau montre la valeur finale d'une propriété CSS ?
  3. Comment activer l'état :hover dans les DevTools ?
  4. Quel outil mesure le CSS inutilisé ?
  5. Comment simuler un iPhone dans les DevTools ?
  6. Quel est le raccourci pour le mode inspecter ?
  7. Comment lire une variable CSS via la console ?
  8. Quel panneau affiche le modèle de boîte ?
  9. Comment identifier les Layout Shifts ?
  10. Les modifications dans les DevTools sont-elles permanentes ?
Réponses :
  1. F12 ou Ctrl+Shift+I ou clic droit → Inspecter.
  2. Le panneau Computed — il montre la valeur finale après cascade.
  3. Dans le panneau Styles, cliquer sur :hov puis cocher :hover.
  4. L'outil Coverage (Ctrl+Shift+P → "Coverage").
  5. Ctrl+Shift+M puis sélectionner le device dans la barre du haut.
  6. Ctrl+Shift+C — active le mode inspecter.
  7. getComputedStyle(document.documentElement).getPropertyValue('--variable')
  8. Le panneau Computed → Box Model (clic sur le diagramme).
  9. Avec le Rendering panel → "Layout Shift Regions".
  10. Non — les changements sont temporaires. Utiliser les Overrides ou copier le code.

Cheat sheet rapide

/* === RACCOURCIS DEVTOOLS === */
F12               Ouvrir les DevTools
Ctrl+Shift+C      Mode inspecter
Ctrl+Shift+M      Mode Responsive
Ctrl+Shift+P      Command palette
Ctrl+F            Rechercher
Ctrl+Z            Annuler un changement CSS
Esc               Console ou fermer panneau

/* === DEBUG CSS === */
/* Inspecter : clic droit → Inspecter */
/* Modifier : cliquer sur une valeur dans Styles */
/* Ajouter : bouton + dans Styles */
/* États : Styles → :hov → cocher :hover, :focus */
/* Classes : bouton .cls pour ajouter/retirer */
/* Variables : getComputedStyle(el).getPropertyValue('--var') */
/* computed : onglet Computed → valeur finale */
/* Box Model : onglet Computed → cliquer sur le diagramme */
/* Responsive : Ctrl+Shift+M → redimensionner */
/* Performance : Rendering → Paint flashing, FPS */
/* Couverture : Coverage → identifier CSS inutilisé */