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;
}
}

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).


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) { ... }

É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