Outils pour utilisateurs

Outils du site


cours:informatique:dev:web:simplifiez-vous-le-css-avec-sass:240_adapter_code_a_tout_support

Adaptez votre code sur tous supports

Notes et transcriptions du cours Simplifiez vous le CSS avec Sass proposé sur la plateforme Openclassrooms.

Pour le moment, tout a l’air parfait quand on regarde notre page sur un navigateur d’ordinateur. Sauf que sur mobile…

Une mise en page typique du design non responsive sur mobile

Oops. La mise en page reste la même quelle que soit la résolution de l’écran. Pour que l’affichage de notre site s’adapte sur n’importe quel support, nous devons mettre en place des media queries.

Révisez les principes du responsive

Les media queries sont des règles qui indiquent quand on doit appliquer des propriétés CSS, en fonction de la taille de l'écran sur lequel s'affiche le site web. Cette notion est abordée dans le cours Créez votre site web avec HTML5 et CSS3.

Les media queries indiquent au navigateur d’utiliser un ensemble de règles sous certaines conditions. Dans notre cas : en fonction de la taille de l’écran. Si c’est pour un écran d’ordinateur ou une tablette, ou alors si la résolution du navigateur est celle d’un grand écran ou d’un petit téléphone portable. Pour exécuter une media query, on utilise @media, suivi d’un argument et d’une paire d’accolades contenant les ensembles de règles :

@media (max-width: 599px) {
    Votre code ici !
}

Cette media query signifie que le navigateur appliquera votre code si la largeur du navigateur est inférieure à 600 pixels.

Petit moment culture et vocabulaire, je sais que vous en raffolez ! Les résolutions que vous indiquez pour vos media queries sont appelées des breakpoints.

Les breakpoints représentent les limites liées à la résolution de l’écran, qui déterminent si oui ou non les ensembles de règles liés s’appliquent.

Pour notre exemple, nous avons créé une media query avec un breakpoint qui appliquera les ensembles de règles spécifiquement adaptés aux écrans plus petits, comme une tablette, voire un téléphone.

Comment ça fonctionne ? La syntaxe CSS standard des media queries consiste à placer un sélecteur et son ensemble de règles directement entre les accolades de la query. Dès que la résolution de l’écran correspond au breakpoint, alors le breakpoint prendra le pas sur l’ensemble de règles par défaut :

// Notre règle par défaut
.intro {
   display: flex;
   flex-direction: row;
   align-items: flex-start;
 }
 
// Notre media query
@media (max-width: 996px) {
 
 .intro {
    flex-direction: column;
    align-items: center;
    justify-content: center;
 }
}

C'est déjà plus lisible !

Ah ! Alors ce n’est pas encore parfait, mais notez ce qui vient de se passer : lorsque la taille de l’écran n’est plus adaptée et atteint le breakpoint, la propriété flex-direction prend le dessus et ordonne les éléments sur une seule colonne. Au final, cette section est bien plus lisible de cette manière sur petit écran.

Maintenant, dans notre optique d’un code plus lisible et mieux organisé, placer les sélecteurs au sein de la media query signifie qu’ils ne feront pas partie de leurs blocs BEM nestés. Ça nous complique la tâche pour trouver et maintenir les éléments, et ça nous rajoute encoooore du travail d’écriture…

Eh oui, comme toujours, Sass est là pour vous sauver la mise et vous faciliter la vie ! 🤭

Mettez en place les media queries

En CSS standard, les sélecteurs sont placés à l’intérieur de la media query. Sass, lui, vous permet de placer les media queries directement dans les sélecteurs, regardez :

.intro {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
 
        @media (max-width: 996px) {
            flex-direction: column;
            align-items: center;
        }
}

Pas mal, non ? Plutôt que de devoir tout séparer, la media query et ses règles sont bien imbriquées dans leur bloc BEM ; du coup, bonus pour nous : comme tout est au même endroit, c’est plus simple à trouver et à modifier.

Comment Sass sait-il quelle media query appliquer ?

Quand Sass compile les media queries, il vérifie le sélecteur dans lequel elles sont imbriquées, puis affiche une media query classique avec le sélecteur nesté dedans :

.intro {
 display: flex;
 flex-direction: row;
       align-items: flex-start;
}
 
@media (max-width: 996px) {
 .intro {
  flex-direction: column;
             align-items: center;
 }
}
N’hésitez pas à utiliser SassMeister pour vérifier le code compilé CSS lorsque vous vous entraînez.

Et le tour est joué ! Sass vous aide à gérer les media queries en un rien de temps, et vous offre en bonus un moyen de garder votre code lisible et organisé.

Dans l’optique de garder ce cours accessible à tous, nous avons volontairement omis de parler de $breakpoints et @content. Si toutefois vous voulez approfondir vos connaissances, nous vous conseillons de lire la documentation Sass, ou ces articles :

En résumé

  • Les media queries vous permettent d’adapter votre contenu à différents écrans, en disant au navigateur d’utiliser un ensemble de règles alternatives dans certaines circonstances ;
  • Pour exécuter une media query, on utilise la règle CSS @media, suivie de la liste des queries et d’une paire d’accolades contenant les ensembles de règles alternatives requises ;
  • Avec Sass, vous pouvez nester les media queries, ce qui vous permet de les imbriquer dans le bon bloc BEM.

Vous avez parcouru un sacré bout de chemin, c’est bientôt la fin de ce cours ! Mais pas si vite ! Il faut encore déployer votre code Sass en ligne. C'est ce qu'on va voir dans le prochain et dernier chapitre.

◁ Précédent | ⌂ Retour au sommaire | Suivant ▷

cours/informatique/dev/web/simplifiez-vous-le-css-avec-sass/240_adapter_code_a_tout_support.txt · Dernière modification : 2025/08/17 09:17 de yoann