Aller au contenu

Media Queries

Une media query permet de définir des styles CSS spécifiques en fonction de certaines conditions comme :

  • la taille de l’écran (largeur/hauteur),
  • le type d’appareil (impression, écran),
  • la résolution,
  • le mode sombre ou clair, etc.

C’est un outil fondamental du responsive design, pour adapter l’affichage à tous les appareils : desktop, tablette, mobile.


@media condition {
/* styles CSS ici */
}

/* Style par défaut : Desktop */
body {
background: white;
font-size: 18px;
}
/* Tablette : max-width 768px */
@media (max-width: 768px) {
body {
background: #f0f0f0;
font-size: 16px;
}
}
/* Mobile : max-width 480px */
@media (max-width: 480px) {
body {
background: #e0e0e0;
font-size: 14px;
}
}

Table : Les breakpoints courants (indicatifs)
AppareilLargeur max (max-width)
Mobile480px à 600px
Tablette768px à 1024px
Laptop1024px à 1440px
Desktop large1440px+

@media (min-width: 1024px) { ... }
@media (max-width: 768px) { ... }
@media (orientation: portrait) { ... }
@media (orientation: landscape) { ... }
@media (prefers-color-scheme: dark) {
body {
background: black;
color: white;
}
}

@media (min-width: 600px) and (max-width: 900px) {
/* Styles pour les écrans entre 600px et 900px */
}

  • Utilise les mobile-first media queries : styles de base pour les petits écrans, puis min-width pour les plus grands.
  • Évite de tout surcharger dans une seule règle.
  • Garde une structure claire (desktop / tablette / mobile).
  • Utilise des unités fluides (em, %, rem) autant que possible.

.card {
width: 400px;
}
@media (max-width: 768px) {
.card {
width: 90%;
}
}

@media (max-width: 768px) {
/* styles ici */
}

C’est la forme la plus courante et la plus utilisée aujourd’hui.

Par défaut, screen est sous-entendu, donc tu peux omettre screen sans problème dans 99 % des cas.


@media screen and (max-width: 768px) {
/* styles ici */
}

Tu précises ici que les règles ne s’appliquent que pour les écrans (et pas pour l’impression, par exemple).


Table : Autres types de media
TypeDescription
allTous les types de médias (défaut)
screenÉcrans (ordinateurs, tablettes, etc.)
printImpression papier
speechSynthèse vocale (lecture d’écran)

  • Si tu ne cibles que les écrans, tu peux utiliser juste @media (plus court, plus lisible).

  • Si tu veux exclure print ou speech, utilise explicitement :

    @media screen and (max-width: 768px) { ... }

Table : En résumé
ÉcritureRecommandée ?Notes
@media (...)✅ OUISuffit dans 99 % des cas
@media screen and (...)✅ OUIPlus explicite, utile si tu fais aussi du print
@media print✅ OUIPour les styles d’impression