Mises en page avec macro

Les mises en page macro décrivent l'organisation globale de l'interface, à l'échelle de la page.

Wireframe d'une mise en page à deux colonnes, à côté de la même mise en page à une colonne pour une vue étroite.

Avant d'appliquer une mise en page, assurez-vous que le flux de votre contenu est logique. C'est l'ordre par défaut pour les petits écrans.

<body>
  <header>…</header>
  <main>
    <article>…</article>
    <aside>…</aside>
  </main>
  <footer>…</footer>
</body>

Lorsque vous organisez ces composants individuels au niveau de la page, vous concevez une mise en page macro, c'est-à-dire une vue globale de votre page. À l'aide de requêtes média, vous pouvez fournir des règles en CSS décrivant comment cette vue doit s'adapter à différentes tailles d'écran.

Grille

La grille CSS est un excellent outil pour appliquer une mise en page à votre page. Dans l'exemple précédent, imaginons que vous souhaitiez une mise en page sur deux colonnes lorsque la largeur de l'écran est suffisante. Pour appliquer cette mise en page à deux colonnes une fois que le navigateur est suffisamment large, utilisez une requête média pour définir les styles de grille au-dessus d'un point d'arrêt spécifié.

@media (min-width: 45em) {
  main {
    display: grid;
    grid-template-columns: 2fr 1fr;
  }
}

Flexbox

Pour cette mise en page spécifique, vous pouvez également utiliser flexbox. Les styles se présenteraient comme suit :

@media (min-width: 45em) {
  main {
    display: flex;
    flex-direction: row;
  }

  main article {
    flex: 2;
  }

  main aside {
    flex: 1;
  }
}

Toutefois, la version Flexbox nécessite plus de CSS. Chaque colonne possède une règle distincte qui décrit l'espace qu'elle doit occuper. Dans l'exemple de grille, ces mêmes informations sont encapsulées dans une règle pour l'élément conteneur.

Avez-vous besoin d'une requête média ?

Vous n'aurez pas toujours besoin d'utiliser une requête média. Les requêtes média fonctionnent bien lorsque vous appliquez des modifications à quelques éléments, mais si la mise en page doit être souvent mise à jour, vos requêtes média peuvent devenir incontrôlables avec de nombreux points d'arrêt.

Imaginons que vous ayez une page remplie de composants de carte. Les cartes ne sont jamais plus larges que 15em, et vous souhaitez en placer le plus possible sur une même ligne. Vous pouvez écrire des requêtes média avec des points d'arrêt tels que 30em, 45em et 60em, mais cela est assez fastidieux et difficile à gérer.

En revanche, vous pouvez appliquer des règles pour que les cartes elles-mêmes occupent automatiquement la bonne quantité d'espace.

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));
  grid-gap: 1em;
}

Vous pouvez obtenir une mise en page similaire avec Flexbox. Dans ce cas, s'il n'y a pas assez de cartes pour remplir la dernière ligne, les cartes restantes s'étireront pour remplir l'espace disponible au lieu de s'aligner en colonnes. Si vous souhaitez aligner des lignes et des colonnes, utilisez une grille.

.cards {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1em;
}
.cards .card {
  flex-basis: 15em;
  flex-grow: 1;
}

En appliquant des règles intelligentes dans Flexbox ou Grid, il est possible de concevoir des mises en page de macros dynamiques avec un minimum de CSS et sans aucune requête média. Cela vous évite de faire le travail vous-même, car c'est le navigateur qui effectue les calculs. Pour voir des exemples de mises en page CSS modernes qui sont fluides sans nécessiter de requêtes média, consultez 1linelayouts.com.

Vérifiez vos connaissances

Testez vos connaissances sur les mises en page macro.

Quelle phrase décrit le mieux les mises en page de macros ?

Mises en page qui contiennent d'autres mises en page.
Essayez encore. La plupart des mises en page contiennent d'autres mises en page.
Lorsqu'une conception utilise flexbox ou une grille.
Essayez encore. Ni flexbox ni grid ne sont spécifiques aux mises en page macro.
Mises en page de bas niveau qui couvrent de petites zones de l'écran.
Essayez encore.
Mises en page de haut niveau qui couvrent une grande partie de l'écran.
🎉 Les mises en page macro sont des mises en page de base pour une page. Elles couvrent de grandes zones visuelles et sont souvent ajustées avec des requêtes média de taille de page.

Les mises en page macro utilisent-elles toujours des requêtes média pour s'adapter aux différentes tailles d'écran ?

Vrai
Essayez encore. La mise en page d'une macro n'est pas définie par son utilisation des requêtes média.
Faux
🎉 Les mises en page macro peuvent s'adapter au contenu, remplir l'espace disponible et plus encore, sans requête média.

Maintenant que vous avez quelques idées de mises en page macro, concentrez-vous sur les composants de la page. C'est le domaine des micros mises en page.